次のようにSSHコマンドでcontromasterオプションを使用します。
ssh -i id_rsa -o ControlMaster=auto -o ControlPath='~/.ssh/controlmasters/%r@%h' -o ControlPersist=3600 user@hostname
これにより、以前の接続を再利用してより速くログインできます。 WiFi接続が失われて10分後に再接続しようとすると、同じソケットファイルを再利用できなくなることがわかりました。
ソケットファイルがまだ存在するかどうかを確認するプログラムはありますか?最終的に既存のソケットファイルが利用可能かどうかを確認するifステートメントを作成したいと思います。その場合は続行し、そうでない場合は新しいファイルを作成します。
答え1
SSH-O check
コマンドを使用します。
$ ssh -O check user@hostname || ssh -Nf user@hostname
関連メモで、さまざまな設定を〜/ .ssh / configのセクションに移動して、sshコマンドを簡素化できます。ここでは、:%p
sshポート番号をソケットファイル名の一部にするパターンをControlPathに追加しました。
host user@hostname
IdentitiesOnly yes
ControlPath ~/.ssh/controlmasters/%r@%h:%p
ControlMaster auto
ControlPersist 3600
これによりコマンドが簡単になります。
ssh -i id_rsa user@hostname
常に同じIDファイルを使用している場合は、〜/ .ssh / configでパラメータを使用してそれを指定することもできますIdentityFile
。 Ubuntu 22.04では、id_rsa
これが試行される基本リストの最初のエントリであるため、コマンドラインから簡単に削除できます。詳細については、ssh_config(5) マンページを参照してください。