ディレクトリ チャンネル vol.39
Secure Shell(SSH)とSecure Copy(SCP)を使えば、システムのリモート管理や、セキュアなリンク経由のファイルコピーは難しくない。SSHとSCPは、どちらも同じSSHプロトコルを使用してネットワーク通信を保護するが、シェルの実行やファイルのコピーにはユーザの介在を必要とする。また、リモートマシンへの既存のSSH接続を使ったファイル取得は容易ではなく、SCPによるファイルコピーの際には別のSSH接続が必要になる。だが、 ssh-xfer を使えば話は別だ。 ssh-xferでは、ローカルのSSHエージェント(ssh-agent)を利用することで、既存のSSH接続を介したファイル転送が簡単に実行できる。ssh-xferを使うにあたり、SSHのクライアントやサーバのプログラムの変更は不要だが、ssh-agentにパッチを当てる必要がある。できればssh-agentにパッチを当てずに済ませたいところだが、これには複数のSSH接続を介したファイル転送が可能になるという大きな利点もある。たとえば、まずファイアウォールに接続し、そこから順にリモートサーバ、リモートデスクトップマシンへと接続して、そのリモートマシンのSSHから「/etc/foo.conf」ファイルを取得しようとする場合に、ローカルマシンからそのファイルにたどり着くまでの過程や、SCPによってすべての中間ホストを介してそのファイルを転送する方法を考えなくても済むのだ。リモートマシンのSSHから単純に「ssh-xfer /etc/foo.conf」とするだけで、このファイルがローカルマシンの「~/Desktop」にコピーされる。また、デフォルトの転送先ディレクトリはssh-xfer用パッチの「XFER_DEST_DIR」で指定できる。もちろん、リモートマシン側でssh-xferプログラムが使えるようにしておく必要があるが、サーバ側のSSH環境の変更は一切必要ない。
