私は大学のafsシステムにアクセスするためにSSHを使用しています。 SSHトンネリングを必要とするrmate(リモートTextMate)を使用するのが好きなので、このエイリアスを.bashrc
。
alias sshr=ssh -R 52698:localhost:52698 [email protected]
今まで常に機能していました。
別のSSH接続を開いていました。 SSHトンネルを開く前に、その接続を閉じる必要がありました。
詳細な説明: 1つのssh接続が確立されると、後続の接続はメッセージを生成します。
警告:リスンポート52698のリモートポート転送に失敗しました
このメッセージは無害です。転送は1回しか設定できず、同じマシンへのすべてのssh接続に対して1回の転送が機能するためです。フォワードを開いた元のsshセッションは、すべてのリモート編集セッションが終了するまでシェルを終了すると開いたままになります。
同じ問題がありました。すでに開いているポートを見つけるには、「corn.myschool.edu」コンピューターで次のコマンドを発行する必要があります。
Sudo netstat -plant | grep 52698
そして、これを思いつくすべてのプロセスを強制終了します(xxxxをプロセスIDに置き換えます)。
Sudo kill -9 xxxx
(更新:ニースのニーモニックであるため、オプションを-plant
に変更しました)
この問題は発生しましたが、Sudo特権を持っていないサーバーに接続しているときに発生したため、トップレスポンスではSudo netstat ...
は私には実現不可能でした。
結局、rmateのインスタンスがまだ実行されているためだとわかったので、ps
を使用して実行中のプロセスをリストし、kill -9 pid
(ここで、pidはrmateのプロセスIDです)。
これにより、ここで報告された問題も解決しました。この通知を回避するには、SSH構成で「AllowTcpForwarding」を有効にする必要があります。
私の場合、問題は、リモートシステムにDNSが適切にセットアップされておらず、それ自体のホスト名を解決することさえできないことでした。リモートシステムの/etc/resolv.confに有効なDNSがあることを確認してください。