<基本的な構文>
SSHを使用してリモートシステムに接続するには、sshコマンドを使用。
ssh remote_host
※remote_hostは、接続しようとしているIPアドレスやドメイン名
※リモートシステム上のユーザー名がローカルシステムのユーザー名と同じであると想定
リモートシステムのユーザー名と異なる場合
ssh remote_username@remote_host
サーバーに接続すると、パスワードを提供して身元の確認を求められることがある。
sshセッションを終了してローカルシェルセッションに戻るにはexitを使用。
exit
<SSHの機能>
SSHは、クライアントプログラムをsshdと呼ばれるsshサーバーに接続することにより動作。
※前セクションのsshはクライアントプログラム。
sshサーバーは、指定したremote_hostで既にに稼働している。
サーバーでは、sshdサーバーが既に稼働している。
稼働していない場合は、Webベースのコンソールかローカルシリアルコンソールからサーバーにアクセスする必要あり。
sshサーバーの開始に必要なプロセスは、使用するLinuxディストリビューションによって異なる。
Ubuntuでは、次のように入力してsshサーバーを起動。
sudo systemctl start ssh
sshdサーバーが起動し、リモートログインできます。
<SSHの設定方法>
SSHの設定変更は、sshdサーバーの設定変更を意味する。
Ubuntuでは、メインのsshd設定ファイルは/etc/ssh/sshd_configにある。
ファイルを編集する前に現在のバージョンをバックアップ。
sudo cp /etc/ssh/sshd_config{,.bak}
テキストエディターで開く。
sudo nano /etc/ssh/sshd_config
このファイルのオプションの大半をそのまま残す。
/etc/ssh/sshd_config
Port 22
ポート宣言では、sshdサーバーの接続待ち受けポートを指定。
デフォルトのポートは22。
この設定は特に理由がある場合を除いて変更しない方がよい。
/etc/ssh/sshd_config
HostKey /etc/ssh/ssh_host_rsa_key
HostKey /etc/ssh/ssh_host_dsa_key
HostKey /etc/ssh/ssh_host_ecdsa_key
ホスト鍵宣言で、グローバルホスト鍵を探す場所を指定。
/etc/ssh/sshd_config
SyslogFacility AUTH
LogLevel INFO
これらの2項目は、ログインレベルを示す。
SSHに問題がある場合、ログイン数を増やせば問題の発見に役立つ。
/etc/ssh/sshd_config
LoginGraceTime 120
PermitRootLogin yes
StrictModes yes
これらのパラメータは、ログイン情報のいくつかを指定。
LoginGraceTimeは、ログインまでの制限時間を設定。
この時間は、通常のログインにかかる時間よりも若干長めに設定する方がよい。
PermitRootLoginは、rootユーザーのログインを許可するかどうかを選択。
通常、suかsudoを介して高度な権限にアクセスできるユーザーアカウントを作成し、
sshログインできる場合は、noに変更する。
strictModesは、認証ファイルが誰でも開ける状態になると、ログインを拒否するセーフティーガード。
これにより、設定ファイルが安全でないときのログインが防げる。
/etc/ssh/sshd_config
X11Forwarding yes
X11DisplayOffset 10
これらのパラメータは、X11転送という機能を設定。
これは、リモートシステムのグラフィカルユーザーインターフェイス(GUI)をローカルシステムに表示する機能。
このオプションは、サーバー上で有効になり、-Xオプションに接続するSSHクライアントに与えられるもの。
変更後、CTRL + X、Y、ENTERキーを押してファイルを保存して閉じる。
/etc/ssh/sshd_configの設定を変更したら、必ずsshdサーバーをリロードして変更を実装させる。
sudo systemctl reload ssh
変更を徹底的にテストして、期待通りに動作するか確認。
変更を完了する際、セッションをいくつかアクティブにするのが良い。
これにより、必要に応じて設定が取り消せる。