文書の過去の版を表示しています。
CentOSなどはデフォルトで許可されているので注意
# cat /etc/ssh/sshd_config | grep Permit PermitRootLogin no
認証用の秘密鍵と公開鍵のペアが作成される
$ cd $ ssh-keygen -t rsa -b 4096
$ cat ./.ssh/id_rsa.pub | ssh user@remote_host "cat >> ./.ssh/authorized_keys"
.sshディレクトリがないと失敗するのでその場合には
$ ssh user@remote_host "mkdir ./.ssh && chmod 700 ./.ssh"
とかやってディレクトリを作っておく。
CentOSならssh-copy-idが入っているのでそちらを使うも良し。FreeBSDはPortsのsecurity/ssh-copy-idでインストールしても良いのですがpkgngにはありません。1)
$ ssh-copy-id -i .ssh/id_rsa.pub user@remote_host
なお、authorized_keysはPermissionを 600にしておかないとLogin に失敗するので注意
# cat /etc/ssh/ssh_config ...... PasswordAuthentication no ChallengeResponseAuthentication no UsePAM no
FreeBSDは標準でPasswordAuthentication を禁止しているがChallengeResponseAuthentication は許可されているのでこちらも必ず「No」にしておく。
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
AuthorizedKeysFileを指定すると、このマシンから他へssh接続する際にBad configuration option: AuthorizedKeysFileと表示して落ちます。2)
.ssh/configファイルで複数サーバーのSSH接続を管理
Host example HostName example.com Port 10022 User nanako IdentityFile ~/.ssh/id_rsa.example
これで以下のようにアクセス可能
$ ssh example
ssh-keygen -y -f ~/.ssh/id_rsa > ~/.ssh/id_rsa.pub
ssh-keygen -lf ~/.ssh/id_rsa.pub