Fight the Future

Java言語とJVM、そしてJavaエコシステム全般にまつわること

SSHの鍵を作成してパスワードログインを無効にする

こういうインフラ関係のことは苦手です。。。

クライアントマシンで鍵を生成する。-tは鍵の種類を指定するオプション。SSHプロトコル2なら「rsa」を指定する。

生成した公開鍵をscpコマンドでサーバーにアップロードする。

$ ssh-keygen -t rsa

$ scp ~/.ssh/id_rsa.pub ユーザー名@(サーバー名 or IPアドレス):~

サーバーマシンで公開鍵を配置する。カレントディレクトリはホーム。

$ mkdir .ssh
$ chmod 700 .ssh
$ mv id_rsa.pub .ssh/authorized_keys2
$ chmod 600 .ssh/authorized_keys2 

これでクライアントマシンから接続すると鍵認証となる。鍵作成のときにパスフレーズを入力していると、パスフレーズが聞かれるので入力すればサーバーマシンにログインできる。

$ ssh ユーザー名@(サーバー名 or IPアドレス)

パスフレーズの入力が面倒なとき、ターミナル起動の間だけなら下記コマンドを入力しておくと入力を省ける。

$ eval `ssh-agent`
$ ssh-add ~/.ssh/id_rsa

パスワード入力を不可にしてセキュリティを上げておく。

# vi /etc/ssh/sshd_config

PermitRootLogin no
PermitEmptyPasswords no
PasswordAuthentication no
ChallengeResponseAuthentication no

# /etc/init.d/sshd restart