はじめに
環境
- ローカルマシン
- Windows10
- PowerShell
- リモートマシン
- Linux
手順
ローカルマシンでの作業
1. "ssh-keygen"コマンドで4096ビットRSA暗号の公開鍵・秘密鍵を生成。
- "-t"オプションで暗号の種類を示す。下の例はRSA暗号。
- "-b"オプションでビット数を示す。下の例は4096ビット。
- "-C"オプションの後はコメントを示す。メールアドレスなどを書くとよいかも。
ssh-keygen -t rsa -b 4096 -C "[コメント]"
2. パスフレーズの入力を求められる。
- 何も入力しなくてもよい(セキュリティについて)。
Enter file in which to save the key (C:\Users\[Windows10のユーザ名]/.ssh/id_rsa): [Type a passphrase]
3. 再度、パスフレーズの入力を求められる。
- 2.で入力したパスフレーズを入力
Enter passphrase (empty for no passphrase): [Type a passphrase]
4. 公開鍵と秘密鍵を確認
- ホームディレクトリ下の.ssh/ディレクトリに移動。
- .ssh/ディレクトリには先ほど生成した秘密鍵(id_rsa)と公開鍵(id_rsa.pub)がある。
cd ~/.ssh
ls
5. リモートマシンに公開鍵を転送
- "scp"コマンドでリモートマシンに公開鍵を転送。
scp id_rsa.pub [リモートマシンのユーザ名]@[リモートマシンのホスト名]:~/.ssh/id_rsa_hoge.pub
リモートマシンでの作業
1. ローカルマシンでリモートマシンにSSHで接続
ssh [リモートマシンのユーザ名]@[リモートマシンのホスト名]
2. SSHの設定ディレクトリに移動
- Linuxでの"~"はホームディレクトリの意味
cd ~/.ssh
3. ローカルの新しい公開鍵をリモートマシンに登録
- 転送した公開鍵を"cat"コマンドで表示
- "autohrized_keys"は接続を許可する公開鍵を登録しておくサーバー側のファイル
- ">>"はリダイレクションと言い、指定したファイルの末尾に追記する
- 下の例では"cat"コマンドで公開鍵の中身を表示し、">>"で"authorized_keys"ファイルに追記している。
touch authorized_keys
cat id_rsa_hoge.pub >> authorized_keys
4. "authorized_keys"ファイルのパーミッションを変更
chmod 600 authorized_keys
5. 転送したローカルマシンの公開鍵を削除
rm -fv id_rsa_hoge.pub
再度、ローカルマシンでの作業
1. sshでローカルマシンからリモートマシンに接続
ssh [リモートマシンのユーザ名]@[リモートマシンのホスト名]
2. 接続できたら、OK
ローカルマシンの使い勝手を良くする(エイリアス)
1. Windows10のホームディレクトリ以下の~/.ssh/configを開く
cd ~/.ssh
code config
2. ~/.ssh/configを編集
- 通常のエイリアス
# ~/.ssh/config
Host remote1 # エイリアス
HostName example1.com # リモートマシンのホスト名
User hoge # リモートマシンのユーザ名
Port 22 # リモートマシンのSSHポート
IdentityFile ~/.ssh/id_rsa # セットとなる秘密鍵
- 踏み台サーバがある場合のエイリアス
# ~/.ssh/config
Host bastion # 踏み台のエイリアス
HostName example2.com # リモートマシンのホスト名
User fuga # リモートマシンのユーザ名
Port 22 # リモートマシンのSSHポート
IdentityFile ~/.ssh/id_rsa # セットとなる秘密鍵
Host remote2 # エイリアス
HostName dst # リモートマシンのホスト名
User fuga # リモートマシンのユーザ名
Port 22 # リモートマシンのSSHポート
IdentityFile ~/.ssh/id_rsa # セットとなる秘密鍵
ProxyCommand ssh -W %h:%p bastion # bastion経由でSSHする
3. エイリアスを使って接続
ssh remote1
ssh remote2
終わり
本記事は終了です。