ChangeLog 最新ページ

カテゴリ[SSH] - てくめも@coop

2008-04-28 Mon

* tips - PuTTY でコマンドライン - サーバごとに接続設定を変える[SSH]


PuTTY は SSH と互換のコマンドライン引数を持っているため、以下のようにしてコマンドラインからユーザ foo, ドメイン example.com でログインできます。

putty foo@example.com

 
環境変数 PATH に putty.exe (または puttyjp.exe)へのパスを通しておけば、Windows の「ファイル名を指定して実行(Windowsキー + Rキー)」で実行できるためかなり便利です。
 
GUIでのログインと同様、サーバごとに秘密鍵や文字コードの設定−保存(ストア)されたセッション−を切り替えてログインしたい場合は、

putty -load "セッション名"

とすると指定した設定(セッション)をコマンドラインから読み込んでログインすることができます。セッション名を user@hostname の書式で設定しておけば

putty -load foo@example.com

のように通常のログインに -load を加えるだけでよいので管理、利用が容易になります。
  
参考:
PuTTY でデフォルト設定を変更する(過去記事)
ssh -R の応用例(過去記事)
ssh を任意のポート、プロトコルの proxy にする(過去記事)



2008-03-21 Fri

* ssh -R の応用例[SSH]
- SSH サーバ A から SSH クライアント B に逆に SSH 接続する

B$ ssh -R 12345:127.0.0.1:22 A # (1) 12345 は任意のポート番号
(A にログイン)
A$ ssh 127.0.0.1:12345 # (2)
(A から B に逆にログイン)
B$ echo hello

メリット:
-- (2)においてクライアント(B)のIPアドレスを知らなくてもサーバからクライアントに SSH 接続ができる
-- クライアント側(B)の sshd がローカルからしか接続を受けない場合でもサーバ側(A)から接続することができる
 
デメリット:
-- クライアント側(B)にも最低限ローカルから TCP で接続できる sshd (または telnet) が必要。
-- (2)でユーザ名がサーバ側とクライアント側で異なる場合、クライアント側のログイン可能なユーザ名を知っている必要がある。
-- (2)を実行するには(1)の接続を保持し続けなければならない。

2008-03-21 Fri

* ssh を任意のポート、プロトコルの逆 proxy にする[SSH]
以前「ssh を任意のポート、プロトコルの proxy にする」という記事で ssh の -L オプションを紹介しましたが、この逆バージョンについて触れていなかったので紹介しておきます。
 
ssh -L は先の記事で紹介したとおり SSHクライアントの任意のポートへの通信をSSHサーバのネットワークの任意のホスト、任意のポートに転送できるようにするためのオプションですが、ssh -L とは逆に ssh -R を使うとSSHサーバの任意のポートへの接続をSSHクライアントのネットワークの任意のホスト:ポートに転送できるようになります。
 
使い方:

ssh -R <SSHサーバ側でLISTENするポート番号>:<SSHクライアント側ネットワークの転送先ホストIPアドレス>:<転送先ホストポート番号> <SSHサーバホスト>

 
例: クライアントA(192.168.1.2)からSSHサーバB(10.0.0.1)に接続し、SSH サーバからクライアント側ネットワークのHTTPサーバC(192.168.1.3:80) に A 経由でアクセスする

 
A$ ssh -R 7777:192.168.1.3:80 10.0.0.1
--connected to B(10.0.0.1)--
B$ netstat -an | grep LISTEN | grep 7777
tcp4 0 0 127.0.0.1.7777 *.* LISTEN
B$ telnet localhost 7777
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
HEAD / HTTP/1.0\n
\n\n
HTTP/1.1 200 OK
Date: Fri, 14 Mar 2008 10:15:35 GMT
Server: Apache
Last-Modified: Thu, 20 Dec 2007 11:25:38 GMT
Accept-Ranges: bytes
Content-Length: 18050
Connection: close
Content-Type: text/html
 
Connection closed by foreign host.

 
なお、このオプションは -L 同様 PuTTY でも利用可能なので Windows から ssh 接続するときにも有用です。
 
参考:
- ssh を任意のポート、プロトコルの proxy にする(過去記事)
- ssh(1) manpage(openbsd.org)

2007-10-02 Tue

* PuTTY でデフォルト設定を変更する[SSH]
度忘れしていたのでメモ。
 
引数なしで putty.exe を起動し、設定を変更後に
"セッション" カテゴリを選択し、 "保存されたセッション"の欄で Default Settings を選択して保存ボタンでOK。
 
端末のプライベートキーファイルを設定するには、
"接続" -> "SSH" -> "認証" カテゴリを選択し、"認証パラメータ"の欄で認証のためのプライベートキーファイルに(puttygen.exe で作成した) *.pty ファイルを設定すればよい。
 
OpenSSH の ssh-keygen で作成した秘密鍵を putty でも使いたい場合は puttygen で Load ボタンでssh-keygen で作成した秘密鍵(id-dsa や id-rsa)を選択後 Save private key ボタンで .pty 形式に変換できる。
鍵の内容は同じなので、publick key は両方の秘密鍵で共通。

2006-08-22 Tue

* Windows 用高機能仮想端末[SSH][tech]
Poderosa
http://ja.poderosa.org/
 
タブ式 GUI、プラグインで拡張可能な端末らしいです。
あちこちに何本もコネクション張るので、タブなのは便利そうです。
 
なお、動作には .NET Framework 2.0 を必要とします。

2005-12-26 Mon

* SSH でよく接続が切れる場合の対処[SSH]
sshd_config で

# Setting timeout of connections.
# Default is..
# ClientAliveInterval 0
# ClientAliveCountMax 3
# 2 minites (10sec * 12 times = 120 sec)
ClientAliveInterval 10
ClientAliveCountMax 12

とかして、2 分間は猶予を与えることにした。
 
- ClientAliveInterval - 生存チェックをする間隔(デフォルトでは一切チェックしない)
- ClientAliveCountMax - 生存チェックする回数(デフォルトは 3 回)
 
サーバ側がいじれない場合はクライアントサイドの ssh_config で

>

ServerAliveInterval 10
ServerAliveCountMax 12

とすれば同じ効果があるらしい。
 
参考:
- OpenSSH FAQ - 2.12 なにもしないで N 分たつと ssh 接続が固まるか、切れるかするんだけど。
- MAN - sshd_config.0
- MAN - ssh_config.0

2005-12-13 Tue

* rssh で ssh をよりセキュアにする[SSH]
rssh(日本語) ports: shells/rssh
こういうの探してました。
 
ssh に, ユーザに応じて chroot を設定、 scp,sftp,rsync,cvs の利用について許可不許可を設定したり、umask を設定できる。
参考:
Manpage of RSSH
Manpage of RSSH.CONF
http://www.xdelta.net/wiki/FreeBSD/rssh.html

2005-11-25 Fri

* ssh を任意のポート、プロトコルの proxy にする[SSH]
[2005-11-17] SSH 経由でネットワーク共有フォルダにアクセスする」の応用すると、次のような事例についても応用できる。
- Firewall があって ○○○ が使えないけど無理に使いたい
- クライアントからの○○の送信, アクセス元 IP アドレスをサーバの IP アドレスにしたい(例.メール送信元の隠蔽)
 
仕事で VNC 接続をサーバからにする必要があり、応用してみた(VNC over SSH using PuTTY)。
- Loopback NIC の IP アドレス(ex. 169.254.0.2)についてポート番号 5900 (VNC のディスプレイ0 のポート)への接続が ssh サーバ(ex. ssh.example.org)経由での接続先ホスト(ex. target.OCexample.com)の5900番への接続になるようにローカルポートフォワードする。こんなかんじ。

ssh -L 169.254.0.2:5900:target.example.com:5900 ssh.example.org

PuTTY でやるなら、SSH トンネルのポートフォワーディングで
 
- 源ポート: 169.254.0.2:5900
- 送り先: target.example.com:5900
- ローカル
 
として追加しておき、ssh.example.org に接続すればよい。
ローカルで 5900 を LISTEN していなければ、Loopback IP アドレスを使う必要はないため、この場合 PuTTY では源ポートの指定はポート番号のみでよい。また ssh コマンドでは

ssh -L 5900:target.example.com:5900 ssh.example.org

でよい。
また、-g オプションと組み合わせて使うと、ローカルだけでなく外にもポートを開き、公開プロキシのように振舞えるようになります。

ssh -g -L 5900:target.example.com:5900 ssh.example.org

 
ダイナミックポートフォワーディングとローカルポートフォワーディングの
メリット、デメリットは次の通り。
 
- ダイナミック
○ 一度の設定で、サーバからアクセスできる場所であればどこにでもアクセスできる。
× SOCKS サーバとして動作するため, プロキシ接続用のクライアントソフトが SOCKS プロトコルに対応している必要がある。
 
- ローカル
○ SOCKS プロトコルに対応している必要がなく、どんなクライアントソフトでも利用できる。
× 接続先、ポート番号を逐一マッピングする必要があるため、複数箇所に対しては手間。

2004-12-28 Tue

* RSA,DSA って簡単[SSH] 接続元でssh-keygen -t コマンドで作った鍵を接続先の .ssh/authorized_keys に cat id_dsa.pub >> .ssh/authorized_keys みたいにするだけ. id_rsa.pub, identity.pub でも同じ.
具体的には秘密鍵さえ持っていれば, デフォルト設定で(.ssh/authorized_keys に書きこめば)どのユーザとしてでもパスワードなしで入れる. 行末の username@hostname はコメントみたいなものかな.
RSAAuthentication だとか PubkeyAuthentication を明示的に no としないと有効になってそう.
.ssh/authorized_keys は 0644 より緩い権限だと Permission denied になるみたい. 所有者は root か 本人かが妥当だと.

2004-12-16 Thu

* SSH を SOCKS Proxy として使う[SSH] ssh -D port remort オプションで ssh クライアントが SOCKS サーバになる. PuTTY でもトンネルという機能でできますな.
あるいは Port Forwarding + tinyproxy で `ssh -L 8888:localhost:8888 remotehost` みたいな.
AAAA を持った web サーバにアクセスすると空白ページになる.. IPv6 が甘い? FireFox で試しても空白ばっかでよくわからず..
追記: 以下のようにすることで IE で成功.
1. PuTTY の設定でトンネル追加に Dynamic, IPv4 チェック, Listen するポートを任意のポート(8888)に設定. 宛先は空にする.
2. IE の proxy 設定で SOCKS を localhost:8888 にし, それ以外のプロトコルを空白にする.
3. ブラウザでローカルネットワークを叩く.
<http://google.co.jp> とかやったら PuTTY が強制終了した...
追記 [2005-03-25]: 結構頻繁に切れる. Firefox/Thunderbird では proxy をドメインやホスト名でなく IP アドレスにしないとつながらないとかいう現象もあり(Thunderbird 1.0).

2004-11-17 Wed

* 圧縮オプション -C[SSH] stdout/stdin/stderr を経路上圧縮.
scp とかでも使えるので便利.

2004-09-29 Wed

* SSH + jail patch[SSH]
<http://solaris.bluecoara.net/servers/ssh/jail.phtml>
- 追記 [2005-03-27]: [2005-03-02] に書いたように OpenSSH + chroot パッチなら ports/security/openssh-portable にある。

ChangeLog 最新ページ

最終更新時間: 2009-01-07 06:15