SSH関連 (2)

関連記事:

  1. SSH関連 - (新) 檜山正幸のキマイラ飼育記 メモ編
  2. SSH関連 (2) - (新) 檜山正幸のキマイラ飼育記 メモ編 この記事
  3. SSH関連 (3) known_hosts - (新) 檜山正幸のキマイラ飼育記 メモ編


C:\WINDOWS\System32\OpenSSH\ssh.exe と C:\WINDOWS\System32\OpenSSH\ssh-keygen.exe に関して言えば、$env:USERPROFILE\.ssh\ を見てることが分かった。それは、ssh-keygen -R daphnia.org を実行して分かった。

> ssh-keygen -R daphnia.org
# Host daphnia.org found: line 1
C:\Users\m-hiyama/.ssh/known_hosts updated.
Original contents retained as C:\Users\m-hiyama/.ssh/known_hosts.old

バックアップファイルが $env:USERPROFILE\.ssh\.ssh\known_hosts.old だった。

だが、$env:HOME/.ssh/ にある id_rsa(秘密鍵ファイル)とid_rsa.pub(公開鍵ファイル)を使いたいので、C:\Users\m-hiyama\.ssh\config を次のようにする。

Host daphnia.org
  HostName <IP-Addr>
  User <Usser-Name>
  IdentityFile C:\Users\m-hiyama\Work\.ssh\id_rsa

次のようにしてホストに公開鍵ファイルを送る。

PS> cat ~\.ssh\id_rsa.pub | ssh User-Name@daphnia.org sh -c "cat - >> ~/.ssh/authorized_keys" 
パスワードプロンプト+入力

ここで、Powershell の '~' は $env:HOME を参照する。したがって、C:\Users\m-hiyama\Work\.ssh\id_rsa.pub ファイルが送られる。

sshでログインするには、ssh User-Name@daphnia.org とする。実体としてのサーバが同じでも、IPアドレスや別名でサーバを指定するとパスワード要求されてしまう。

~/.ssh/config ファイルのフォーマットは調べればわかるだろう。

.ssh/known_hosts の作り方だが、configエントリーのHostNameに書かれた名前をキーにして作成される。今回は、IPアドレスを書いておいたので、ホスト名は.ssh/known_hostsに書き込まれない。コマンドライン・インターフェースとしては、エントリータイトルが使われ、.ssh/known_hostsのキーはHostNameフィールドの値が使われる、という例によってハマりやすい仕様。