はじめに
macOSからSSHDroidが起動しているAndroid端末にsshコマンドでログインする手順のメモです。
(SSHDroidはGoogle Playで入手してインストールし、起動させておいてください。)
参考)https://man.openbsd.org/ssh_config
紹介する手順は、openSSH利用時に必要な一般的な設定であり、macOS固有という訳ではありませんが、フリーソフトを利用することの多いWindowsと比べると、macOS/UNIX等では設定の定義などあらかじめ作成して置かなければならない作業があるため、覚え書きとしてまとめたものです。
macOSに標準のsshコマンド(OpenSSH)で、下記のようにユーザー名、IPアドレス、ポート番号を指定して接続しようとしても、"Could not resolve hostname ..."といったエラーメッセージが表示されて接続することができません。
yuza-no-MacBook:~ yuza$ ssh root@192.168.xxx.xxx:2222
ssh: Could not resolve hostname 192.168.xxx.xxx:2222: nodename nor servname provided, or not known
~/.ssh/config
の作成、または/etc/ssh/ssh_config
の編集
viエディタなどで、~/.ssh/config
を作成します。
(全ユーザー共通の設定にしたい場合は、rootユーザー権限で/etc/ssh/ssh_config
を編集してください。編集前にあらかじめバックアップもとっておきましょう。)
192.168.xxx.xxx
は、Android端末でWiFi接続した際に割り当てらえれたプライベートIPアドレスです。皆さんの環境に合わせて変更してください。
"#"の文字以降はコメントです。動作には関係ありませんので入力しなくても構いません。
yuza-no-MacBook:~ yuza$ vi ~/.ssh/config
# for SSHDroid running android terminal
Host my_android # sshコマンドではこのエントリ名を指定します
HostName 192.168.xxx.xxx # 名前解決を利用しない場合は、IPアドレスでも記述可
Port 2222
User root
IdentityFile ~/.ssh/id_rsa_secret_key
DNSでホスト名(FQDN)からIPアドレスへの名前解決ができる場合や、/etc/hosts
ファイルにAndroid端末のホスト名を記述済みの場合は、HostName
フィールドは下記のようにFQNDやホスト名で記述しても構いません。
yuza-no-MacBook:~ yuza$ cat /etc/hosts
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
192.168.xxx.xxx my_android
yuza-no-MacBook:~ yuza$ vi ~/.ssh/config
# for SSHDroid running android terminal
Host my_android # sshコマンドではこのエントリ名を指定します
HostName my_android # 名前解決可の場合は、ホスト名またはFQDNで記述しても良い
Port 2222
User root
IdentityFile ~/.ssh/id_rsa_secret_key
sshコマンドの実行
下記のようにAndroid端末のIPアドレスまたは~./ssh/configに記述したエントリ名(Host
の後に記述した名前)を指定してsshコマンドを実行します。
yuza-no-MacBook:~ yuza$ ssh my_android
初めての接続の場合、公開鍵が作成されて登録されたあと、fingerprint
の表示に続いてconnecting (yes/no)?
と尋ねてくるので、yes
と入力しておきます。
The authenticity of host '[my_android]:2222 ([192.168.xxx.xxx]:2222)' can't be established.
RSA key fingerprint is SHA256: (ここにはフィンガープリントが表示される)
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '[my_android]:2222' (RSA) to the list of known hosts.
続いてパスワードを入力します。password:
のあとに、SSHDroidのデフォルトパスワードadmin
と入力します。
SSHDroid
Use 'root' as username
Default password is 'admin'
root@my_android's password:
下記のようなプロンプトが表示されれば、ログイン成功です。
(SSHDroidのユーザー名やホスト名は伏せています)
u0_aXXX@XX-XXXX:/data/data/berserker.android.apps.sshdroid/home $
あとは好きなようにコマンドを入力してみてください。