Ubuntuの電話にsshでアクセスするにはどうすればよいですか?


16

実行しようとするapt-get install openssh-serverと、次のエラーが発生します。

root@ubuntu-phablet:/home/hablet# apt-get install openssh-server
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt
E: The package lists or status file could not be parsed or opened.

まったく同じエラー
user195123

同じことをしている私にとって同じエラー-ubuntu 11.04。
マレ

1
@Malee 11.04はサポート終了です。そのため、ここでは11.04のヘルプを得ることができません。12.04以降、またはサポートされているリリースにアップグレードすると、修正をサポートできます。
トーマス・ウォード

1
Ubuntu touchにはまだソフトウェアセンターがなく、更新は端末のみであり、opensshをインストールしようとしたときに実行しませんでした。
user195123

私はまだあまり変更していないので、ストレージをフォーマットしてubuntuを再フラッシュすると役立つと思いますか?
user195123

回答:


27

公式の最終リリースでは、Ubuntu for Phonesに「android-gadget-service」ツールが付属しており、adb、mtp、USBテザリング、sshを管理できます。

USB経由でデバイスを接続し、次の場所で開発者モードを有効にします。

「システム設定->この電話について->開発者モード」

...そして実行します(PCから、電話スクリーンのロックを解除してください。そうでない場合、adbはあなたを入れることを拒否します):

adb shell android-gadget-service enable ssh

電話に公開キーをコピーします。

adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

これで、電話でIPを検索し、sshを使用して接続できます。

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>

うまく機能しますが、ネットワークインターフェイスの名前がでない場合、最後のコマンドはIPを表示しませんwlan0。私はwlan2何らかの理由でした。
Cos64

コマンド:ADBプッシュの〜/ .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keysは私を与える:そのようなファイルまたはディレクトリ:STAT '/home/tenleftfingers/.ssh/id_rsa.pub'することはできません
TenLeftFingers

開発者モードまたはイメージを書き込み可能にする必要はありません。簡単で実用的なソリューションについては、SSH Ubuntu Touchを参照してください。パスワードなしの認証と同様/home/phablet/.ssh/authorized_keysに、デバイスに(Ubuntu Touchデバイスへのアクセスに使用しているPCの公開キーを使用して)ファイルを配置する必要があります。ssh -v phablet@<ip-address>(詳細)を実行すると、ログインまたは権限の問題をデバッグできます。
ペテルリーノ

@orga zeroconf(avahi-daemon)でブロードキャストしますか?そうすれば、nautilusでデバイスを確認し、sftpでファイルを転送できます。
ルシッドアラム

また、権限を追加する必要がありました:chmod
ow〜

17

SSHアクセス有効にするには、完全に無線LAN経由開発者モードのない電話で、特別なツールなしでお使いのコンピュータとUSBを使用せずに

  1. まだsshキーペアがない場合ssh-keygenは、コンピューターに入力し、指示に従ってキーペアを生成します。
  2. App Storeから電話にターミナルアプリをインストールします。
  3. ターミナルを開いて入力します(電話を横向きにすると簡単です):

    sudo setprop persist.service.ssh true
    mkdir -pm700 ~/.ssh
    ip addr
    nc -l 1234 > ~/.ssh/authorized_keys
    

    (最後のコマンドがハングします。これは予期されていることです)

  4. ip addr上記のコマンドによって返されるターミナルで、電話のIPアドレスを探します。

  5. コンピューターで、次のように入力192.0.2.1します(上記の電話のIPアドレスに置き換えます)。

    nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
    

    成功すると、携帯端末の最後のコマンドが成功します。

  6. コンピューターで、次のように入力192.0.2.1します(もう一度上記の電話のIPアドレスに置き換えます):

    ssh phablet@192.0.2.1
    
  7. 電話機のIPアドレスが変更された場合、電話機のip addrターミナルアプリで再度使用し、それに応じてsshコマンドを調整する必要があります。


3
adbシェルとUSBケーブルがなくなるので、非常に有益な回答です。大満足!
スタント

確かに非常に有用な答え。+2
zloster

(私よりも知っている)@ograは、と言われますsudo android-gadget-service enable ssh代わらsudo setprop persist.service.ssh true、代わりに使用する必要がありますが、私はこれをテストしていません。
ロビーバサック

1
BQ Aquarius 5の場合、Androidの方法では電話を発見できないため、これが一番の答えになるはずです。
キャットアムステルダム

14

OpenSSHサーバーは、現在(2013年9月13日現在)、Ubuntu Touchインストールでプリロードされています。ただし、デフォルトでは無効になっています。また、rootからSSHを動作させたくありません。


デバイスへのUSB接続を使用して、次を入力する必要があります。

adb shell
su - phablet
sudo tee /etc/init/ssh.override < /dev/null

無効に戻すには

echo "manual" | sudo tee /etc/init/ssh.override

更新:(2014年3月9日)

上記の答えは現在のものではありません。

  • 2014年3月上旬/etc/init/ssh.override現在、ファイルはまだ存在していますが、その内容を変更しても、起動時にSSH(実際にはsshdデーモン)を実行することはできません。

  • 最近のビルド(226でテスト済みですが、おそらくそれ以前)は、新しいメタフラグpersist.service.sshをサポートするようになり、SSH(sshdデーモン)が起動時に再起動できるようになりました。

コマンドプロンプトにアクセスする(デバイス上)

adb shell
su - phablet

SSHを起動し、フラグを設定します

sudo service ssh start
sudo setprop persist.service.ssh true

デバイスを再起動

sudo reboot

SSHデーモンは自動起動するはずです

sudo service ssh status

SSH自動起動を無効にするには、フラグを変更します。

sudo setprop persist.service.ssh false

suに行った後にすべてをsudoする必要があるのはなぜですか?
タコ

1
この行su - phabletは、ユーザーをスーパーユーザーではなくphabletに変更します。一般に、攻撃に対する脆弱性を少なくするために、最小特権を使用することがベストプラクティスです。
-david6

この答えは更新する必要があります。@ ograを見てください
-sergiusens

1
最初にその方法を確認して試す必要があります。
david6


0

Ubuntu SDKをインストールし、デバイスパネルの[デバイスでSSH接続を開く]をクリックします。ボーナス:新しいスコープの作成に抵抗することはありません...


0

私はちょうどより速い(迅速で汚い)方法を見つけました(注意:安全ではありません!)

1)ターミナルアプリをインストールして開きます

2)ルートに切り替える

sudo su

(画面ロックパスワードを入力してください)

2)次のコマンドを入力します。

echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "AllowUsers phablet" >> /etc/ssh/sshd_config
/usr/sbin/sshd

これでsshサーバーが実行され、画面ロックコードをパスワードとして受け入れます!注意:総当たり攻撃は非常に簡単です!すぐに設定を変更してください(PCからssh経由で接続した後、快適な方法でできるようになりました)。

sshdを手動で実行するため、/ etc / init / ssh.overrideファイルはもう適用されません...

PCから接続するには:

ssh phablet@x.x.x.x

ここで、xxxxは携帯電話のIPアドレスであり、次のように入力して見つけることができます

ifconfig

お使いの携帯電話の端末で。

楽しい!

更新:更新後、sshdがホストキーを開けずに再生成するために起動に失敗する可能性があります。

/usr/bin/ssh-keygen -A

/ var / run / sshdがないために失敗した場合は、作成してください:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.