Linuxユーザの立場から、役立つ情報や困ったときの解決方法を分かりやすく、かつ簡潔に記事にまとめています。主に、Ubuntu 8.04(→9.04)やCentOS 5.2(→5.3)で確認したことですが、他のディストリビューションでも応用できると思います。内容は(1)設定ファイルの書き方(2)役立つソフトウェア紹介やインストール方法(3)便利なコマンドの使い方や活用例(4)困ったときの解決方法です。このページの末尾にキーワード別で記事を分類してあります。また、真上の「ブログ検索」フォームからブログ内の記事を検索できます。

2009年6月17日水曜日

socksサーバ経由でSSH接続する方法 このエントリーを含むはてなブックマーク

本記事では、socksプロキシ経由で、リモートホストにSSH接続する方法をまとめる。

試した環境の詳細は、以下の図のように、LAN内にあるクライアント(Ubuntu 9.04 on ThinkPad X31)で、Socksサーバ(Socks5プロトコル、認証なし)を経由して(LANを出て)、リモートホスト(centOS 5.3 on ThinkCentre S50)にSSH接続した。

使用したsshは、以下の通り。

$ ssh -v
OpenSSH_5.1p1 Debian-5ubuntu1, OpenSSL 0.9.8g 19 Oct 2007

まず、以下のファイルを作成して、~/.sshにconfigという名前で配置する(無ければ、.sshディレクトリを作成する)。リモートホスト(foo.bar.net)のhogeというアカウントに、SOCKSサーバ(socks-proxy.xxx.jpの1080ポート、認証なし)を経由して、SSH接続することを意味している。foo.bar.net.socksは、このプロファイルのための名称なので、この通りでなくても良い。

Host foo.bar.net.socks
 HostName foo.bar.net
 User hoge
 Port 22
 ProxyCommand /usr/bin/connect -a none -S socks-proxy.xxx.jp:1080 %h %p

ちなみに、connectがなければインストールする。connectは、SOCKS4あるいは5、httpトンネルを使って、TCP接続を確立するためのツールである。

$ sudo apt-get install connect-proxy

Ubuntu 9.04では、デフォルトで/usr/binに実行ファイルが配置されるので、上のconfigファイルにはそのように書いてある(そうでないならば変更すること)。

$ which connect
/usr/bin/connect

connectコマンドの詳細は、SSH Proxy Command -- connect.cを参照のこと。

当然、リモートホストには、hogeというアカウントが存在し、かつ、sshによる接続が許可されていなければならない。うまくいかないときは、iptables、tcp wrapperなどでアクセス制限がされていないか確認すること。また、sshdが動いていることも大前提。また、クライアントはSSH接続するとき、デフォルトで~/.ssh/configを読み込むが、システムによってはそうでないかもしれない(/etc/ssh/ssh_configを参照のこと。sshd_configと間違えないように!)。

今回は、RSA認証でリモートホストにSSH接続するので、その設定もできていること(詳細は、SSHサーバの設定を参照のこと)。

以上の準備の下で、次のコマンドを実行し、SSH接続を確立する。

$ ssh foo.bar.net.socks

以下に参照サイトを列挙する。

0 コメント:

キーワード

キーワード別に記事を分類してあります。クリックすると各キーワードに該当する記事たちが表示されます。

筆者について

自分の写真
趣味はコンピュータ、音楽、写真などです。