秘密鍵 (~/.ssh/id_rsa) を利用し、ユーザー (username) でホスト (192.0.2.1) にログインします
本記事では、ssh の結果の見方、オプションの使い方、設定を解説していきます。
ネットワークのコマンド | |||
---|---|---|---|
ssh コマンドの使い方
ssh コマンドは次の2つの認証方法があります。
パスワード認証
ユーザー (username) でホスト (192.0.2.1) にパスワード認証でログイン
通常は、セキュリティを考慮して、パスワード認証の代わりに公開鍵認証を利用します。
公開鍵認証
以下の手順にて、公開鍵認証でログインします。
- ローカルホストに公開鍵・秘密鍵を生成
- リモートホストに公開鍵を登録
- 秘密鍵で公開鍵認証して、リモートホストにログイン (既に秘密鍵を持ってる場合はここから)
ssh-keygen 秘密鍵・公開鍵を生成
Generating public/private rsa key pair. Enter file in which to save the key (/Users/username/.ssh/id_rsa):鍵を保存するパス Enter passphrase (empty for no passphrase): パスワード Enter same passphrase again: もう1度パスワード
未入力で Enter を押すと、デフォルトの設定になります。(パスワードは無しとなります)
既に秘密鍵を持っており、公開鍵を生成したい場合
ssh-copy-id 公開鍵を登録
リモートホストの ~/.ssh/authorized_keys に公開鍵を登録します。
Permission denied (publickey,gssapi-keyex,gssapi-with-mic) が発生した場合は、パスワード認証の代わりに公開鍵認証で、公開鍵を登録してください。
パスワード認証の代わりに、登録済みの秘密鍵で公開鍵認証をし、公開鍵を登録する方法
-i 秘密鍵で公開鍵認証
秘密鍵 (~/.ssh/id_rsa) を利用して、ユーザー (username) でホスト (192.0.2.1) にログイン
The authenticity of host '192.0.2.1 (192.0.2.1)' can't be established. ECDSA key fingerprint is SHA256:123456789abcdefgh. Are you sure you want to continue connecting (yes/no)? yes
(オプション) ssh-add 秘密鍵を登録
ssh-agent に秘密鍵を登録すると、ssh コマンドのオプション -i を省略できます。
ポートフォワーディング
ポートフォワーディングには、以下の3種類が存在します。
- ローカルポートフォワーディング (接続先が 1 つの場合に利用)
- リモートポートフォワーディング (ほぼ使わないので割愛)
- ダイナミックポートフォワーディング (接続先が複数の場合に利用)
192.0.2.1
リモートホストから接続しているので、リモートホストの IP アドレスが取得できます。
※ifconfig.me は接続元の IP アドレスを取得するサイト
[指定したホスト] で localhost を指定する場合
※ssh クライアント=SOCKS プロキシ、特定のポート = SOCKS のポート
192.0.2.1
ローカルポートフォワーディングとダイナミックポートフォワーディングの違い
複数の接続先がある場合は、ダイナミックポートフォワーディングを利用します。
設定ファイル (~/.ssh/config) の書き方
ここでは、設定ファイル (~/.ssh/config) の書き方を説明します。
User デフォルトのユーザー
ssh コマンドのデフォルトで利用するユーザーを設定します。
User username
以下のように、ユーザー名を指定する必要がなくなります。
HostName デフォルトのホスト
ssh コマンドのデフォルトで利用するホスト名 (IP アドレス)を指定できます。
HostName 192.0.2.1
Host エイリアス
ssh コマンドで指定するホストのエイリアス名を設定できます。
Host test HostName 192.0.2.1 User username
これにより以下の2つは同じ意味を持ちます。
ProxyCommand 踏み台
踏み台サーバーを経由して別のサーバーにアクセスできます。
Host private HostName 192.0.2.250 ProxyCommand ssh 192.0.2.1 -W %h:%p
192.0.2.1 を踏み台に、192.0.2.250 へアクセス。 %h はホスト名、%p はポートを表す。
ServerAliveInterval 応答確認
ssh が sshd に定期的に応答確認を行うことで、勝手に ssh が切断されるのを防ぎます。
ServerAliveInterval 60
上記では 60 秒ごとに応答確認を行います。
Include 他の設定を取り込み
他の設定ファイルの内容を取り込みます。設定ファイルを分けたい場合に使います。
Include conf.d/*
上記は conf.d/* 配下の設定ファイルを全て取り込みます。
AddKeysToAgent, UseKeychain 鍵の登録
秘密鍵の指定やパスフレーズをキャッシュし、入力をスキップできます。
(UseKeychain は macOS の keychain に鍵を保存)
AddKeysToAgent yes UseKeychain yes
関連記事
学習ロードマップ | |||||
---|---|---|---|---|---|
ネットワークのコマンド | |||
---|---|---|---|
OSI 参照モデル | |||
---|---|---|---|