sshまとめ
SSHの認証方式
パスワード認証方式
リモートホストのユーザ名・パスワードで認証
公開鍵認証方式
パスフレーズ無しの秘密鍵ならば、パスフレーズ入力無しで認証される SSHサーバに公開鍵、SSHクライアントに秘密鍵を配置。
OpenSSH
SSHプロトコルのソフト。 SSHクライアントとSSHサーバの両方を持つ。 WindowsのGit Bashでも使用可能。 sshコマンド、rsync、Gitで利用される。
sshコマンド
$ ssh foo@foo-host
秘密鍵ファイルの指定
$ ssh -i ~/.ssh/id_rsa foo@foo-host
※秘密鍵は無指定ならば、デフォルトで、~/.ssh/id_rsa、~/.ssh/id_dsa、~/.ssh/identity
SSHクライアント設定ファイルの指定
$ ssh -F ~/.ssh/config foo@foo-host
※設定ファイルは、デフォルトで、~/.ssh/config
ポート番号の指定
$ ssh -p 2222 foo@foo-host
リモートホストに公開鍵を登録する
~/.ssh/authorized_keys
リモートホストのユーザfooの場合、 [foo-host]/home/foo/.ssh/authorized_keysに、 SSHクライアントの公開鍵id_rsa.pubを追記しておく。
authorized_keysには、fooで接続してくる、 SSHクライアントの分だけ、 公開鍵が何行も登録される。
SSHクライアント設定ファイル
~/.ssh/config
- Host sshコマンドで指定するホスト名
- HostName リモートホストのIPアドレス、またはホスト名
- User リモートホストのユーザ名
- Port SSHのポート番号
- IdentityFile 秘密鍵ファイルのパス
フィンガープリント
~/.ssh/known_hosts
SSHクライアントは、リモートホストの情報 (リモートホスト公開鍵のフィンガープリント)を保存する。
実装は、ホスト名またはIPアドレスから始まリ、 鍵の暗号方式(ssh-rsa)、公開鍵からなるエントリのリスト。
SSHクライントは、IPアドレスとリモートホストの持つ公開鍵で、 リモートホストを識別する。
SSHクライアントは、known_hostsに登録されている公開鍵と、 リモートホストから取得した公開鍵を照合し、ホスト認証する。