自分が過去にまとめたwikiに書いといた情報で解決できたので、まとめます。
SSH の公開鍵認証とは
公開鍵暗号方式は...Wikipediaでも読んで下さいwヒマなときにでも書き足します。
SSH環境の構築
SSHサーバとSSHクライアントの設定方法をまとめる。他サイトを読んでて分かりにくかったのが、「どのマシンで何ファイルの設定をしているか」ということ。そこを分かりやすくまとめます。
説明の前に用語を定義。
- SSHサーバ:SSHで接続先マシン。Unix系なら「sshd」が動作してる環境。
- SSHクライアント:SSHで接続元マシン。Windowsだと「Tera Term」とか「Putty」とか、Unix系なら「ssh」コマンドを実行する環境。
また、今回はSSHサーバ、SSHクライアントともにUnix系マシンを前提にします。なので
SSHサーバは「sshd」、では「ssh」を使います。(OSはSSHサーバがCentOS、SSHクライアントがMac OS Xです)
まず、SSHサーバの設定ファイル(sshd_config)を更新する。
Centosでは「/etc/ssh/sshd_config」にあります。
PasswordAuthentication no # パスワードではなくカギでログインする PermitEmptyPassword no # パスワードなしのログインは許可しない
次に、SSHサーバで鍵を作成するコマンドを実行します。
こんな感じで出力される。ここで入力するパスフレーズは、SSHクライアントからssh接続するときに使うので覚えておくように。
# 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: Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub.
次に、SSHサーバで公開鍵の名前を変更します。
# mv ~/.ssh/id_rsa.pub ~/.ssh/authorized_keys
次に、SSHサーバの秘密鍵(id_rsa)をSSHクライアントの~/.sshディレクトリに格納する。
(例えばscpコマンドを使う例。ユーザー名がhogehogeでマシンのIPアドレスが192.168.1.10)
# scp ./ssh/id_rsa hogehoge@192.168.1.10:/Users/hogehoge/.ssh
次に、SSHサーバの秘密鍵の権限を600、.sshディレクトリを700に変更
# chmod 600 .ssh/id_rsa # chmod 700 .ssh
これで準備完了。SSHクライアントで以下コマンド実行すると、パスフレーズを入力するダイアログが出てくる。入力してOKボタンを押せば接続される。
$ ssh root@192.168.1.1
0 件のコメント:
コメントを投稿