sshでログインするときにパスワード入力が面倒。
もしくはscpとかやるときに自動でログインしたい。
というときのために。
ssh がインストールされていなかったらクライアント側サーバ側ともに事前にインストールしておく。
yum install openssh-clients
クライアント側(あやつる側)(192.168.1.10)で
ssh-keygen -t rsa
これで鍵生成。
作るときに
Generating public/private rsa key pair. Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again:
とか聞かれる気がする。
passphrase 入れると毎回聞かれて自動でログインって言う目的に合致しないので、
今回入れない。
rootユーザでログインしていれば[ /root/.ssh/ ]配下に id_rsa と id_rsa.pub が出来るはず。
id_rsa.pub が公開鍵なので色々なところに使いまわす。
鍵を作ったクライアントがわかるように
mv id_rsa.pub id_rsa.pub.192.168.1.10
で変更しておく。
そのまま
scp id_rsa.pub.192.168.1.10 root@192.168.1.11:/root/.ssh/id_rsa.pub.192.168.1.10
で id_rsa.pub をサーバ側(あやつられる側)にコピーして。
サーバ側(192.168.1.11)にコピーされたことが確認できたらサーバ側で
cat id_rsa.pub.192.168.1.10 >> authorized_keys
とかやる。
authorized_keys ファイルが存在するかどうかは気にしない。追記だから。
むしろすでにあるならcpとかで下手に上書きしないように気をつける。
で、
authorized_keys が作成された場合はパーミッションが644あたりになっているので、
chmod 600 authorized_keys
でrootさん以外触れないようにしておく。
したらクライアント側(192.168.1.10)から
ssh -i /root/.ssh/id_rsa root@192.168.1.11
みたいにしてサーバ側にログインできるか確認する。
『-i』が秘密鍵を使用するよオプション。-iの後ろでファイル名を指定する。
ログインできたら後はscpなりなんなり。
クライアントはWindowsだ!
というわがままさんの場合はサーバ側で鍵生成、
出来たid_rsa.pubをそのままauthorized_keysにコピー、
id_rsaをWindowsのクライアントに持っていってログインする方法でも構わないです。
要はid_rsaとid_rsa.pubが対になっているということだけ。
イメージとしては
- 自分(クライアント)が鉄人(サーバ)のコントローラ(id_rsa)とその受信機(id_rsa.pub)を作る。
- 受信機(id_rsa.pub)を鉄人(サーバ)に埋め込む。
- コントローラ(id_rsa)を使って「うごけてつじーん!」
ってカンジ。