記事概要
SSHの実施方法はいくつかありますが、少しでも楽をしたい、という思いで
ちょっとずつ改善を重ねたので、その内容を共有します。
SSH(Secure Shell)とは、ネットワーク経由で他のコンピューターや機器を
遠隔操作するためのプロトコルです。
前提
●公開鍵認証でのSSHを想定
●鍵は事前に作成し、以下準備しておく
・公開鍵の中身をサーバ側のauthorized_keysに記載
・秘密鍵をクライアント側で保持
※サーバ利用サービスによっては勝手が違うかもしれないのでご了承ください。。
●SSHに必要な情報は以下表のとおり
SSHに必要な情報 | 当記事での設定(適当です。あくまでイメージアップのため) |
---|---|
接続先ホスト名 | www.test.com |
接続先ポート番号 | 22 |
ユーザ名 | test_user |
秘密鍵のパスワード | 秘密鍵生成時に設定したパスワード |
秘密鍵のパス | ~/.ssh/test.pem |
ステップ1:Tera Term(SSHクライアントソフト)でのSSH
まずはTera Termを使ってのSSHを習得しました。
GUIベースで入力できるのでわかりやすいですが、
各項目を毎回入力するのがだんだん面倒になってきました。。
<入力イメージ>


ステップ2:CLIからのSSHコマンド(コマンド内でパラメータ指定)
次にCLI(コマンドライン)でのSSHを習得しました。
事前にコマンド内容を控えておけば、コピペ+Enterで接続可能です。
ただしコピペが少し面倒。。
ssh -i 秘密鍵のパス -p ポート番号 ユーザ名@接続先ホスト名
※秘密鍵にパスワード設定している場合、当コマンド入力後にパスワード入力が必要
ssh -i ~/.ssh/test.pem -p 22 test_user@www.test.com
ステップ3:CLIからのSSHコマンド(config内でパラメータ指定)
configファイルに必要なパラメータを定義しておけば
「ssh ホスト名のエイリアス」のコマンド入力で簡単に接続できるように!
configファイルは「.ssh/」の配下に配置します。
<configファイルの設定>
# SSH接続先のホスト名のエイリアス(短縮名)
Host test
# 接続先サーバのホスト名 or パブリックIP
HostName www.test.com
# sshポート番号(省略可:省略したら22)
Port 22
# ログインするユーザ名
User test_user
# ローカル端末に保存した秘密鍵のパス指定
IdentityFile ~/.ssh/test.pem
ssh test
※秘密鍵にパスワード設定している場合、当コマンド入力後にパスワード入力が必要
応用編:踏み台サーバ経由でのSSH
あるサーバに踏み台サーバを経由して接続したい場合も、
config設定しておけば簡単なコマンド入力で接続可能です。
# 「www.test.com」経由で「www.test2.com」に接続(秘密鍵は同じである前提)
Host test2
HostName www.test2.com
Port 22
User test2_user
# 踏み台サーバ(www.test.com:短縮名はtest)を経由してログイン
# ※「-W %h:%p」は最終目的地(%hはtest2のホスト名、%pはtest2のポート番号を指す)
ProxyCommand ssh test -W %h:%p
# ローカル端末に保存した秘密鍵のパス指定(testと同じ秘密鍵を利用)
IdentityFile ~/.ssh/test.pem
ssh test2
※秘密鍵にパスワード設定している場合、当コマンド入力後にパスワード入力が必要
(testへの接続とtest2への接続のため、パスワード入力も2回必要)
<参考サイト>
最後に
最初はSSHするのに毎回30秒くらいかかっていたのが、
今は5~10秒(ターミナル起動+sshコマンド入力)に短縮されました。
仕事柄、SSHする機会が多いので、だいぶ楽になったと実感しています。
読んでいただいた方のご参考になれば幸いです。