2011.10.8更新 (SSH簡易バージョン、cygwinでSSHについて記載)。
SSH があれば、離れたマシンの自分のアカウントへのリモートログインとログイン後の遠隔操作が可能です。 sftp によるファイル転送もできます。
とくに設定の必要はなし。 上記パッケージをインストール後、ssh デーモンを起動すれば、 すぐ使えるようになっている。
たとえば、マシン foo(192.168.0.3) をSSHクライエント、 マシン hoge(192.168.0.7) をSSHサーバとしよう。 マシン foo のユーザ suzuki さんが マシン hoge の suzuki アカウントにリモートログインしたいとする。
suzuki@foo ------> suzuki@hoge [SSH client] [SSH server]
それには suzuki さんはマシン foo の端末で
$ ssh suzuki@hoge
と打ち込んで、そのあとsuzuki@hoge のパスワードを入れればいい(もちろん suzuki@foo さんは suzuki@hoge さんのパスワードを知っているということが前提だけど同じ人物なら知ってるはずだよね)。
ログイン後、foo の端末は
[suzuki@hoge suzuki]$ (プロンプト)
のように変ってるはず。 あとはテキストの出入力のような単純な作業に限っては、 マシン hoge の前に座って suzuki さんとして仕事をしているのと同じ状態になる。
ssh がインストールされてれば sftp もできるはず。
$ sftp suzuki@hoge (suzuki@hoge のパスワード入力)
ここまでは同じ。あとはふつうの ftp とほとんど同じ画面が出てくる。 コマンドも ftp と同じ。 put (file) で (file) をSSHサーバへアップロード、 get (file) で (file) をSSHサーバからダウンロード、 等など。
cygwin にSSHをインストールすれば、 Windowsマシンからもネットワーク上の Linuxマシン(Windowsマシンとは別)に接続することが可能です。 もちろん Linuxマシンが SSHサーバであることが前提。
cygwin の SSH は Net のカテゴリーのなかにある openssh というのがそれです(下の図を参照)。 これにチェックを入れダウンロード&インストールすれば完了です。
以下は昔書いたもの。秘密鍵・公開鍵と難しいことを書いています。 何を書いているのか今では自分にも分かりません(2011.10.7)。
・・・・・・
以下の順序で設定を行っていきます。
以下、それぞれの手順を説明していきます。
以下ではSSHサーバに用いるマシンのホスト名を SS とします。
はじめにSSHサーバの /etc/ssh/sshd_config を編集して
PasswordAuthentication no
とします。
# cd /etc/init.d # ./sshd restart
と打って、デーモンをリスタートさせます。
SSHクライアントのホスト名を SC とします。
SSHクライアント SC のユーザ hoge はホームディレクトリで
$ ssh-keygen -t dsa
と打ちます。
※ dsa の代わりに rsa を使うこともできます。
パスフレーズの入力を訊かれるので、適当なパスフレーズを考案して、それを入力します。
すると ~/.ssh に
の二つのファイルが作成されます。 これらがユーザ認証用の鍵対となります。 id_dsa が private key(秘密鍵)で、 id_dsa.pub が public key(公開鍵)です。
公開鍵 id_dsa.pub を一旦、フロッピーなどにコピーします。
公開鍵 id_dsa.pub をフロッピーからSSH server に authorized_keys という名前でコピーします。
パスは /home/hoge/.ssh/authorized_keys です。
/etc/hosts.allow を下のように編集します。
sshd: 127.0.0.1, 192.168.0.0/255.255.255.0
以上で準備は整いました。
コマンド ssh は telnet に相当するリモートログインコマンドです。
※ ssh へのシンボリックリンクに slogin があります。 従って以下で ssh の代わりに slogin と入れてももちろん可です。
SSHクライアント SC で
$ ssh hoge@SS
と打つと、
The authenticity of host 'SS (192.168.0.7)' can't be established. RSA key fingerprint is ea:71:dd:86:03:4a:4d:02:1f:73:ca:55:ca:47:3c:a2. Are you sure you want to continue connecting (yes/no)?
と訊かれるので、ここでは SS を信頼して yes を選択します。 つづいて
Warning: Permanently added 'SS,192.168.0.7' (RSA) to the list of known hosts. Enter passphrase for key '/home/hoge/.ssh/id_dsa':
とパスフレーズを訊かれるので、先ほど設定したパスフレーズを入れます。
パスフレーズが正しければ、ユーザ認証は成功し、ログインができて
Last login: Sun May 22 03:01:32 2005 [hoge@SS hoge]$
のような画面が現れます。
ログアウトするには
$ exit
するだけです。
一度、SSHでログインを行うと、 クライアント SC の ~/.ssh には known_hosts ファイルが作成されています。
[hoge@SC .ssh]$ ls id_dsa id_dsa.pub known_hosts [hoge@SC .ssh]$ cat known_hosts SS,192.168.0.7 ssh-rsa AAAAB3NzaC1y・・・・・・(以下略) [hoge@SC .ssh]$
※ この known_hosts というファイルのなかみはホスト認証用の公開鍵で、対応する秘密鍵はSSに /etc/ssh/ssh_host_rsa_key.pub として保存されています。