スキップしてメイン コンテンツに移動

投稿

ラベル(ssh)が付いた投稿を表示しています

ssh-agentの管理を自動化する

ssh-start.sh ssh-agentの管理を自動化するスクリプトssh-start.shを紹介する. 詳細 ssh-agentを使うことで,sshでリモートログインする際に,パスワードの入力を省略できる. ssh-agentを利用するためには,ソケットのパスとプロセスIDを環境変数に登録する必要がある.環境変数に登録すべき情報は,ssh-agentの起動時に,以下のように標準出力に出力される. $ ssh-agent SSH_AUTH_SOCK=/tmp/ssh-XTqIvn4918/agent.4918; export SSH_AUTH_SOCK; SSH_AGENT_PID=4919; export SSH_AGENT_PID; echo Agent pid 4919; 上記のように,ssh-agentの出力はシェルコマンドとなっており,実行すれば環境変数がセットされる.このため,多くの解説記事では,次のようにevalを用いる方法が述べられている. $ eval `ssh-agent` Agent pid 4919 しかし,この方法は,同じssh-agentのプロセスを複数のシェルから利用することはできない.上記コマンドを他のシェル上でも実行すれば,動作はするが,次の点で優れた手法とは言えない. ssh-agentのプロセスを複数起動する (本来は1個で充分). 起動毎に秘密鍵の登録,およびパスフレーズの入力が必要となる. 上記の問題は解決するには,1個のssh-agentを複数のシェルから再利用すればよい.例えば2個のターミナルから1個のssh-agentプロセスを利用するには,次のようにする. # terminal 1 $ ssh-agent > ~/tmp.sh $ source ~/tmp.sh Agent pid 4919 # terminal 2 $ source ~/tmp.sh Agent pid 4919 こうすることで,2個のターミナルから同一プロセスのssh-agentを利用できる. 以上の処理を自動化したものが,ここで紹介するスクリプトである. 使い方 環境変数を扱かうため,通常のスクリプトのようには利用できない.このため,sourceコマンドや.(ドット)コマンドで実行する. $ source /path/to/dir/s...

SSH ポートフォワーディング

ポートフォワーディング ssh hostname] -l [usrname] -N -f [-L   オプション -N ログイン時にシェルを立ち上げない -f sshをバックグラウンドで実行する -L ローカルからリモートにフォワーディングする -R リモートからローカルにフォワーディングする -l ユーザIDを指定する 例 ローカルの8080番をホスト名server.sample.jpのHTTP(80番)にフォワードする.   接続の確立. $ ssh -f -N -L 8080:localhost:80 server.sample.jp -l username   上記コマンドのlocalhostは,server.sample.jpが解釈するホスト名であることに注意する.つまり,server.sample.jpから見たlocalhostなので,localhost = server.sample.jpとなる.従って,上記コマンドは,以下のコマンドと同等である. $ ssh -f -N -L 8080:server.sample.jp:80 server.sample.jp -l username   フォワーディングされていることを確認. $ firefox localhost:8080 ローカルの2222番をゲートウェイgw.sample.jp経由でserver.sample.jpに接続する. $ ssh -f -N -L 2222:server:22 gw.sample.jp -l username $ ssh -p 2222 localhost 良くわかる解説   sshの特徴の一つとして,ポートフォワーディングがある.たとえば,次のようにsshを実行する. % ssh -L X:Remote:Y Remote -l username   このあと,別のウィンドウからローカルマシン(Local)のX番ポートに接続すると,sshによって,その通信はすべてRemoteのY番ポートへ転送される.これをポートフォワーディングという.   sshでポートフォワーディングができる一番の意義は,ローカルとリモートマシン間の通信がsshが提供するレベルのセキュアなものになるということである.従って,この機能を使ってSMTP(25番)やPOP(110番)と通信すれば,メールの...