リモートSSHセッションからローカルマシンにSSHで戻る


12

私はSSHを使って(とにかく)かなり珍しいことをしようとしていますが、うまくいかないので、助けていただければ幸いです。

SSHを使用して、Macからリモートサーバーへの接続を確立したい。ここまでは順調ですね。トリッキーなビット、リモートサーバーへの接続が確立されたので、リモートサーバーBACKからローカルマシンへの接続を開始します。私は知っている、クレイジー。基本的に、これらのフープをジャンプして、リモートサーバーを参照し、ローカルマシン上のファイル情報をローカルマシンに送信して、ローカルマシン上のアプリケーションで処理できるようにする必要があります。うまくいけばそれは理にかなっています!

現時点では、リモートサーバーにログインしてからローカルマシンにSSHで戻ると、ターミナルはただそこに座って、-vでもエラーはありません。

$ SSH_CLIENT変数の出力を見て、どこに電話をかけるべきかを見つけようとしていますが、標準的なインターネット接続(静的IPアドレスなし)を使用しています。これが問題の原因であると思われます。

確立したもの:Mac(OS X 10.6.4)を使用しており、システム設定/共有でリモートログインが有効になっています。LAN上の別のマシンからMacにSSHしようとしても問題ありません。リモートサーバーから(ローカルマシンではなく)別のサーバーにSSHで接続しようとすると、問題なく接続できます。

そのため、上記の事実から、ローカルマシンとリモートマシンのファイアウォールなどに関して明確であると思うようになります。

私はここで非常に明白な何かを見逃しているに違いないと確信していますが、私の人生の間、私はそれを手に入れることができません。

適切な方向へのヘルプ、リンク、または一般的なナッジは大歓迎です!


sshを使用してリモートサーバーを参照できます。または、afsを使用しようとしていますか?portforwardingsやsftp / scpはどうですか?
アンドレアスレーム

こんにちは。はい、リモートサーバーのディレクトリ構造に問題なく接続して参照できます。意味がわかりません、ごめんなさい。基本的にこれは計画です:ローカルMacからリモートLinuxサーバーにsshし、ファイルを参照してから、確立された接続にパイプで戻す(または既に確立された接続に基づいて新しい接続を生成する)ことができますMacアプリがサーバーにデータを送信する前にデータを読み取り/編集するローカルマシン。他のプロトコルを使用するという点で、これをどのように達成するかについては特に大騒ぎしていません。
i0n

回答:


9

ローカルに接続したときに、ハングする前にログインできる場合、これは答えではありません。そこまで行かない場合は、おそらくMacに戻っていない(どこにもアクセスしていないか、ゲートウェイでSSHにアクセスしていない)。リバーストンネルを試してください(サーバーのsshd_configでGatewayPortsをOnに設定する必要がありますが、これがデフォルトだと思います):
you@yourMac$ ssh -R 2000:localhost:22 user@remoteserver
これにより、通常どおりサーバーに接続できるようになりますが、トンネルを開いて再度接続できますポート2000(1024を超えるポートはすべて機能するはずです)you@yourserver$ ssh -p2000 user@localhost

編集:ホスト名をローカルホストに変更


2
最後のコマンドでuser @ localhostを使用する必要があります
b0fh

1
これは役に立ちました。私がどこに行きたいのかはほぼわかりました!上記のようにリバーストンネルを使用して接続を確立し、ssh -p 2000 i0n @ localhostを使用してsshをローカルMacに戻します。では、この機能が必要であることを事前に知らずにこれを達成するにはどうすればよいですか?つまり、既存および標準のssh接続を使用します。これは可能ですか?
i0n

おかげでb0fh、私はそれを書いたベッドに行く途中でした=)i0n-直感的に既存の接続を変更してこれを行うことはできませんが、PuTTYはそれを行うことができるので、方法が必要です。パイプで戻す必要がある場合は、常にトンネルを使用して新しいSSH接続で送信できますが、これはオプションではない可能性があるため、プログラムで行われると思います。Expectを調べてください。SSHを介して言語の準備ができていれば、それが可能です。
ジェームズL

2

サーバーからローカルマシンにアクセスできますか?pingできますか?あなたのマシンがアクセス可能であるなら、あなたがしていることは機能するはずだからです。サーバーはインターネット上またはLAN上、同じサブネット上にありますか?

とにかく、ファイルの編集だけが必要な場合は、単にscpを使用してファイルをローカルマシンにコピーしてみませんか?sshを使用してリモートサーバー上のファイルを参照し、そのパスを取得したら、ローカルマシン(別の端末)に入力します。

scp user@server:/path/to/file/on/server /local/path/to/save/file

ファイルを戻すには、scpでパスを再度切り替えます。

Obs:scpを使用するために最初のssh接続は必要ありません-新しい接続を作成します

これは、ターミナルでアクセスする必要がある場合です。Linux(もちろんMacでも確かですが、方法はわかりません)では、ネットワークでsshリモートロケーションをマウントし、ローカルディスクを使用して接続を使用できます(これはsftpで、接続は次の形式です:sftp://user@server:/path/to/mountそして、これはあなたがMacアプリケーションで直接ファイルを編集できるようにリモート端末接続の代わりに必要なものだと思います。


1

また、ご覧になることもsshfsできます(これにはMacFuseが必要です)。これにより、リモートマシンにディレクトリをマウントし、マシンの通常のフォルダと同じようにアクセスできます。その上で、あなたはまだsshマシンに入り、必要なファイルを作成/検索することができます。それらの転送は、ローカルファイルの転送と同じくらい簡単です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.