最初の作業はVNCコンソールで行ってきましたが、通常はSSHクライアントで操作をしていきます。
特定の端末からのみ接続できるように公開鍵と秘密鍵の作成、rootログイン禁止、ポート番号の変更など行います。
※このページではmacでの説明になります。
公開鍵と秘密鍵の作成(mac)
ターミナルでssh-keygenと入力。
ssh-keygen
鍵ファイルの保存先を聞いてきますがそのままエンター。その後パスフレーズを入力します。
Enter file in which to save the key (/Users/XXXX/.ssh/id_rsa): Enter passphrase (empty for no passphrase): (パスフレーズを入力) Enter same passphrase again: (パスフレーズを入力)
公開鍵と秘密鍵が生成され完了です。
Your identification has been saved in /Users/XXXX/.ssh/id_rsa. Your public key has been saved in /Users/XXXX/.ssh/id_rsa.pub. The key fingerprint is: SHA256:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXX@pc-name.local The key's randomart image is: +---[RSA 2048]----+ | .= . | | .oB o o | | o B + o . | |o..+ E = . + | |=+= + B S = . | |o*.. + X = o | | o * + + | | o .. . | | .... | +----[SHA256]-----+
公開鍵の転送(mac)
XXX.XXX.XXX.XXXは転送先のIPアドレスです。hogeは作成したユーザーにあわせて変更してください。
パスワード入力後、アップロードが開始。100%になると転送完了です。
scp ~/.ssh/id_rsa.pub hoge@XXX.XXX.XXX.XXX:/home/hoge/.ssh hoge@XXX.XXX.XXX.XXX's password: (パスワード入力) id_rsa.pub 100% 405 0.4KB/s 00:00
公開鍵認証の設定(さくらVPS)
ターミナルでさくらのVPSはにSSH接続して公開鍵認証の設定を行います。
sshでサーバーにログイン
ssh -p 22 hoge@XXX.XXX.XXX.XXX hoge@XXX.XXX.XXX.XXX's password: (パスワード入力) SAKURA Internet [Virtual Private Server SERVICE]
格納ディレクトリのパーミッション変更〜公開鍵を別名ファイルに出力、パーミッションの変更、元ファイルの削除。
[hoge@wwwXXXXXX ~]$ chmod 700 /home/hoge/.ssh [hoge@wwwXXXXXX ~]$ cd /home/hoge/.ssh [hoge@wwwXXXXXX ~]$ cat id_rsa.pub >> authorized_keys [hoge@wwwXXXXXX ~]$ chmod 600 authorized_keys [hoge@wwwXXXXXX ~]$ rm -f id_rsa.pub
sshの設定(さくらVPS)
[hoge@wwwXXXXXX ~]$ sudo vi /etc/ssh/sshd_config #Port 22 ↓ Port 10022 #PermitRootLogin yes ↓ PermitRootLogin no PasswordAuthentication yes ↓ PasswordAuthentication no #PubkeyAuthentication yes ↓ PubkeyAuthentication yes #AuthorizedKeysFile .ssh/authorized_keys ↓ AuthorizedKeysFile .ssh/authorized_keys
- Port 10022 ・・・デフォルトのポート番号22はポートスキャンなどで攻撃者に狙われる可能性が高いので変更が推奨されます。ポート番号は何番でも良いですが予約されているポート番号以外で選んでください。
参考リンク:ポート番号 – Wikipedia
-
PermitRootLogin no・・・root権限のリスクを回避するための方法の1つ。rootでのログインを出来ないようにします。
-
PasswordAuthentication no・・・パスワードによる認証を出来ないようにします。SSH接続を認証鍵を持っているユーザーのみにすることでセキュリティが高まります。
-
PubkeyAuthentication yes・・・公開鍵認証の許可
-
AuthorizedKeysFile・・・認証鍵の場所
すべて編集が終わったら上書き保存。
:wq!
設定を再読み込みします。
[hoge@wwwXXXXXX ~]$ sudo /etc/rc.d/init.d/sshd reload
ssh接続(mac)
ターミナルからssh接続します。
ssh -p 10022 hoge@XXX.XXX.XXX.XXX
無事接続ができれば設定は完了です。
エラーで接続できない!
ある日ターミナルから接続しようとすると・・・エラーで接続できません。
ssh -i id_rsa hoge@XXX.XXX.XXX.XXX @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ @ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY! Someone could be eavesdropping on you right now (man-in-the-middle attack)! It is also possible that a host key has just been changed. The fingerprint for the RSA key sent by the remote host is SHA256:********************************************(実際には文字列あり) Please contact your system administrator. Add correct host key in /Users/XXXX/.ssh/known_hosts to get rid of this message. Offending RSA key in /Users/XXXX/.ssh/known_hosts:15 RSA host key for XXX.XXX.XXX.XXX has changed and you have requested strict checking. Host key verification failed.
これは安全な接続をするためにサーバーの情報(RSA公開買のフィンガープリント)をクライアント側で保持しているが、前回接続した情報と異なる場合表示されます。
ファイルの場所は以下にあります。
/Users/XXXX/.ssh/known_hosts
コマンドはssh-keygen -R ホスト名でknown_hostsの削除ができます。
ssh-keygen -R XXX.XXX.XXX.XXX # Host XXX.XXX.XXX.XXX found: line 15 /Users/XXX/.ssh/known_hosts updated. Original contents retained as /Users/XXX/.ssh/known_hosts.old
※今回再インストールをしたため再インストール前の公開鍵情報が残っておりエラーがでました。
メモ
他のPCでも接続したい場合は、秘密鍵をフラッシュメモリなどでコピーして利用するか、他のPC用の公開鍵と秘密鍵を作成してauthorized_keysに追加すると良いでしょう。ここでは説明を割愛します。
また、Windowsでの公開鍵と秘密鍵の作成はこちらを参考にしてみてください。
SSH接続の設定変更方法|さくらインターネット公式サポートサイト