SSHを介して自宅から大学サーバーにリモート接続し、サーバー端末から仮想マシンとしてSSHを介して一部のデータを処理するスクリプトを作成する必要があります。可能ですか?
これまでに試したことは次のとおりです。
#!/usr/bin/expect
set login "myuser"
set addr "test.ac.uk"
set addr2 "t002"
set pw "mypassword"
spawn ssh -o StrictHostKeyChecking=no $login@$addr
expect "$login@$addr\'s password:"
send "$pw\r"
expect "#"
spawn ssh -o StrictHostKeyChecking=no $login@$addr2 -p 22
expect "$login@$addr2\'s password:"
send "$pw\r"
expect "#"
send "cd /developer\r"
interact
間違い:ssh:ホストt002ポート22に接続中:接続が拒否されました。
現在、自宅で手動でログインする方法は次のとおりです。
~/Desktop # ssh host
パスワードの入力を求められます。
一度正常にログインしました。
-bash-4.2$ ssh user@t002
パスワードを再入力するように求められます。
編集する:Mikeが提案したように、2番目のSSHラインを更新しました。
から:
spawn ssh -o StrictHostKeyChecking=no $login@$addr2 -p 22
到着する:
send "ssh -o StrictHostKeyChecking=no $login@$addr2 -p 22\r"
スクリプトはアクセス拒否を返しますが、同時にVMの代わりにサーバーにログインします。
ベストアンサー1
これは一般的な問題です。外部インターネットから直接アクセスできないサーバーにアクセスしようとしていますが、はいパブリック中間ホストからアクセス可能です。 (中間ホストは箱の馬.)
この問題は非常に一般的であるため、OpenSSHはJumpbox(またはJumpboxen?)の使用を自然に簡素化する便利な方法を提供します。 2つの方法がありますが、1つは既存の方法、もう1つは新しい方法です。以前の方法はまだ機能していますが、新しい方法はより直感的であり、ジャンプボックスで利用可能なアプリケーションについては少ない前提があります。
質問に記載されているサンプルマシンを使用すると、次のことができます。
ssh -o StrictHostKeyChecking=no -o [email protected] myuser@t002
それとも同等ではないと思います。-o [email protected]
-W [email protected]
どちらにしても、この方法を使用するには最新のOpenSSHバージョンが必要です。以前のバージョンに問題がある場合は、次のことを行う必要があります。
ssh -o StrictHostKeyChecking=no -o ProxyCommand='ssh [email protected] "nc %h %p"' myuser@t002
以前の方法では、Jumpboxにnetcatがインストールされていると仮定しています。
新しいアプローチのもう一つの利点は、ジャンプボックスに秘密鍵を保持する必要がないことです。 ProxyJumpは、ローカル所有の秘密鍵を使用しようとするのに十分スマートです。したがって、ジャンプボックスが損傷している場合、ジャンプボックスの背後にあるものを損傷する必要はありません。
今度はそのような長いコマンドを書くのに疲れているかもしれません。 SSHを使用するほど、設定したい動機が大きくなります$HOME/.ssh/config
。このファイルでは、リモートホストのエイリアスを提供し、特定の設定をそのホストに関連付けることができます。
たとえば、ssh_config は次のように設定されます。
Host jumpbox
User myuser
Hostname test.ac.uk
StrictHostKeyChecking=no
Host t002
User myuser
StrictHostKeyChecking=no
ProxyJump jumpbox
この設定が完了したら、より簡単なコマンドを使用してt002にログインできるようになりました。
ssh t002
ssh_configを使ってできる他の素晴らしい仕事がたくさんあります。man ssh_config
SSHの詳細については、随時確認して再度ご覧ください。ずっともっと素敵なことを発見するでしょう:)
SSH 構成設定の紹介 練習の例は次のとおりです。https://www.cyberciti.biz/faq/create-ssh-config-file-on-linux-unix/