関連記事:
- SSH関連 - (新) 檜山正幸のキマイラ飼育記 メモ編
- SSH関連 (2) - (新) 檜山正幸のキマイラ飼育記 メモ編 この記事
- 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フィールドの値が使われる、という例によってハマりやすい仕様。