コードを舐める日々

わからないことがわからないことをしる日々

SSHで公開鍵による認証

SSH サーバの設定

このエントリーを実施する条件
  • もう既に OpenSSH を入れて、パスワードによる SSH 接続が出来ることを前提にする
  • サーバに SSH でログインしている状態である
SSH サーバ設定ファイルの編集

vi で sshd_config を開く

# vi /etc/ssh/sshd_config

下記の項目を探して値を変更する。
該当する項目の行頭に"#"が入っている部分もあるので、コメントアウトする。

Protocol 2

SyslogFacility AUTHPRIV

PermitRootLogin no

PasswordAuthentication no

PermitEmptyPasswords no

完了したら、 sshd サービスの再起動を行わない。
行うと、鍵(xx-dsa(秘密鍵))を作成して、その鍵にあった鍵穴(xx-dsa.pub(公開鍵))をサーバに置く処置が出来なくなるからである。

鍵の作成

# ssh-keygen -d -f ~/.ssh/makotoworld-dsa -N '' -C makotoworld@hogehoge.com

上記のコマンドで、 ホームディレクトリの.sshフォルダの中に(~/.ssh/)makotoworld-dsa と makotoworld-dsa.pub が作成される。
makotoworld-dsa は秘密鍵で、他の人に教えてはいけないものです。教えてしまったら、再度鍵の生成を行う必要があります。ssh 接続を行う PC のみ置くようにしてください。

公開鍵を ssh 接続するリモートサーバの ~/.ssh/authorized_keys へ登録する

# ssh makotoworld.com touch ~/.ssh/authorized_keys
# cat ~/.ssh/makotoworld-dsa.pub | ssh makotoworld.com \
  'umask 077; test -d ~/.ssh || mkdir ~/.ssh; cat >> ~/.ssh/authorized_keys

公開鍵による ssh 接続

# ssh -i ~/.ssh/makotoworld-dsa makotoworld.com

これで、公開鍵による ssh 接続設定の完了です。

# alias rssh ssh -i $HOME/.ssh/makotoworld-dsa

という ssh 接続コマンドを tips もあるので、makotoworld.com への ssh ログインは上記のように設定すれば、

# rssh makotoworld.com

で短縮コマンドでログインできます。