リモートサーバーに鍵認証でSSHログインする、など

レンタルサーバーなどで、ユーザーアカウントとパスワードが与えられ、SSHログインできるものとします。また、スーパーユーザー root にもなれるものとします。

一般ユーザー user でログインします。


local> ssh user@server
[user@server] $
スーパーユーザー root で直接ログインできないことを確認します。

# /etc/ssh/sshd_config
PermitRootLogin no

yes になっていたとしたら、no にして sshd を再起動した方が良いでしょう。


[user@server] $ sudo /etc/init.d/sshd restart
デフォルトのポート 22 は、ポートスキャンの対象になりやすいので、変更しておくと良いでしょう。TCPやUDPにおけるポート番号の一覧 などを見て、適当な番号を決めましょう。ここでは、2222 とします。

# /etc/ssh/sshd_config
Port 2222

変更したら sshd を再起動します。


[user@server] $ sudo /etc/init.d/sshd restart
このように変更した場合、ローカルマシンからSSHログインするには、ポート番号を明示する必要があります。

local> ssh -p 2222 user@server
[user@server] $
SSHに基づくユーティリティを使う場合も、ポート番号を明示することが必要になります。例えば、

local> scp -P 2222 my_file user@server:~/

local> rsync -az -e "ssh -p 2222" ~/shared_dir/ user@server:~/shared_dir/

local> git remote add remote_repos ssh://user@server:2222/path/to/repos.git


次に、パスワードではなく、鍵認証でログインできるようにします。
まず、秘密鍵と公開鍵を生成します。


local> ssh-keygen -t rsa
デフォルトでは、ディレクトリ ~/.ssh/ に秘密鍵 id_rsa と公開鍵 id_rsa.pub が生成されますが、名前を変更することも可能です。すでに同名のファイルが存在する場合には、上書きするかどうかをきかれます。また、パスフレーズを入力した場合は、秘密鍵を別のマシンなどにコピーして使う場合などに、このパスフレーズを入力する必要がでてきます。
ディレクトリ ~/.ssh/ と秘密鍵 id_rsa の権限モードが、それぞれ 700 (rwx------), 600 (rw-------) になっていることを確認しておきましょう。

次に、生成した公開鍵をリモートサーバーにコピーします。リモートサーバー上にディレクトリ ~/.ssh/ がなければ、作成しておきます。


[user@server] $ mkdir ~/.ssh
[user@server] $ chmod 700 ~/.ssh
このディレクトリに公開鍵を記述した authorized_keys2 のようなファイルがなければ、単純にローカルマシンの id_rsa.pub をコピーすれば良いでしょう。

local> scp -P 2222 ~/.ssh/id_rsa.pub user@server:.ssh/authorized_keys2
すでにファイルが存在する場合には、そのファイルに追加すれば良いです。

local> scp -P 2222 ~/.ssh/id_rsa.pub user@server:tmp
[user@server] $ cat tmp >> .ssh/authorized_keys2
[user@server] $ rm tmp
これで、鍵認証によるSSHログインができるようになったはずです。

local> ssh -p 2222 user@server
サーバーのユーザーアカウントのパスワードを聞かれずにログインできたら成功です。もしかしたら、秘密鍵に関するパスフレーズを聞かれるかもしれません。

鍵認証でログインできることを確認したら、パスワードによるログインを禁止するようにします。


[user@server] $ sudo vi /etc/ssh/sshd_config

# /etc/ssh/sshd_config
PasswordAuthentication no


[user@server] $ sudo /etc/init.d/sshd restart

参考
LinuxサーバHacks—プロが使うテクニック&ツール100選