準備
/etc/rc.confに以下の行を追加する。
sshd_enable="YES"
更にsshdを起動して鍵ペアを作成する。(鍵ペアはsshd初回起動時に作成される)
鍵ペアは以下のコマンドで強制的にsshdを起動すると作成される。
# /etc/rc.d/sshd forcestart
Generating public/private rsa1 key pair.
Your identification has been saved in /etc/ssh/ssh_host_key.
Your public key has been saved in /etc/ssh/ssh_host_key.pub.
The key fingerprint is:
8c:cf:15:df:14:f0:3b:7d:65:4a:d1:37:8e:11:71:24
root@sima.h2-factory.com
Generating public/private dsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_dsa_key.
Your public key has been saved in /etc/ssh/ssh_host_dsa_key.pub.
The key fingerprint is:
b8:81:a6:97:4e:2f:66:b3:ff:23:2a:2e:e9:70:20:2e
root@sima.h2-factory.com
Generating public/private rsa key pair.
Your identification has been saved in /etc/ssh/ssh_host_rsa_key.
Your public key has been saved in /etc/ssh/ssh_host_rsa_key.pub.
The key fingerprint is:
78:94:a7:63:7f:6a:b1:b3:ff:73:70:eb:cf:01:d4:e1
root@sima.h2-factory.com
Starting sshd.
これで鍵ペアが作成された。/etc/sshd配下を確認してみると、
- ssh_host_dsa_key
- ssh_host_dsa_key.pub
- ssh_host_key
- ssh_host_key.put
- ssh_host_rsa_key
- ssh_host_rsa_key.put
の6つのファイルが作成されているのが分かる。
再起動してsshdが起動するか確認する。
遠隔ログイン
以下のコマンドで遠隔ログインが出来る。
$ ssh user@host
初回ログイン時には以下のメッセージが表示される。
The authenticity of host '192.168.11.5 (192.168.11.5)' can't be established.
DSA key fingerprint is b8:81:a6:97:4e:2f:66:b3:ff:23:2a:2e:e9:70:20:2e.
Are you sure you want to continue connecting (yes/no)?
ここで"yes"とタイプするとログイン処理が進みパスワードを聞かれる。パスワードを入力するとログインすることが出来る。2回目以降は上記のメッセージは表示されないので、そのままパスワードを入力すれたログインすることが出来る。
1回目の接続で必要な情報を保存することが出来たので2回目以降は"yes","no"を聞かれないらしい。試しにログインクライアント側(Mac OS X)の~/.sshを見てみるとknown_hostsが作成されている。
SSHプロトコルバージョン1の場合はknown_hostsで、バージョン2の場合はknown_hosts2と言うファイル名らしいので、今回はどうやらプロトコルバージョン1で接続された模様。クライアント側にssh2を使うように設定して再度試してみる。設定は~/.ssh/configファイルを作成して以下を記述する。
Host host1.example.co.jp
[tab]Protocol 1
ファイル作成後パーミッションを0600にする。
$ chmod 0600 ~/.ssh/config
これで再度接続してみる。
んっ?やっぱりファイル名はknown_hostsのようだ。
todo
この件についてはそのうち調べてみることにして、とりあえず先に進む。
ともあれ無事に繋がった。
証明書を使った遠隔ログイン
まずはMacで証明書を作成する。
% ssh-keygen -t dsa
Generating public/private dsa key pair.
Enter file in which to save the key (/Users/simamaru/.ssh/id_dsa): <-- enter
Enter passphrase (empty for no passphrase): <-- type password
Enter same passphrase again: <-- type password
Your identification has been saved in /Users/simamaru/.ssh/id_dsa.
Your public key has been saved in /Users/simamaru/.ssh/id_dsa.pub.
The key fingerprint is:
69:ee:f8:b9:0c:4a:a3:75:19:87:75:56:f3:2f:ab:19
simamaru@host.domain
~/.ssh配下にid_dsa(秘密鍵)、id_dsa.pub(公開鍵)の2つのファイルが作成される。
公開鍵をログインしたいホストの~/.ssh/authorized_keysとしてコピーする。下で説明しているscpを使ってコピーする。
% cd .ssh
% scp id_dsa.put user@host:/path/to/.ssh/authorized_keys
クライアント側の~/.ssh/configを編集してIdentityFile ..の行を追加する。configファイルは以下のようになる。
Host hostname <- ホスト名を記述
Protocol 2
IdentityFile ~/.ssh/id_dsa
これでリモートにログインしてみる。
$ ssh user@host
Enter passphrase for key '/Users/simamaru/.ssh/id_dsa': <- type password
上記のようにパスワード入力行のメッセージが、単なるパスワードの時と変化しているのが分かる。
ファイル・ディレクトリのコピー
ファイルのコピー
ファイルのコピーはscpコマンドで出来る。クライアントからサーバへコピーする場合は
# scp file user@host:/path/to
password:
hoge 100% 0 0.0KB/s 00:00
と言う感じでコピー出来る。
ホストからクライアント側にコピーする場合は
# scp usr@host:/path/to/file file
password:
hoge 100% 0 0.0KB/s 00:00
と言う感じでコピー出来る。
ファイル名にはワイルドカードも使える。-pを付ければパーミッション、アクセス日付を保持したままコピーすることが出来る。
ディレクトリのコピー
ディレクトリごとコピーする場合は-rオプションを付ける。
# scp -r dir user@host:/path/to
password:
hoge 100% 0 0.0KB/s 00:00
以下ファイルリスト続く
のような感じでコピー出来る。
ホストからクライアントにディレクトリをコピーする場合はファイル同様
# scp -r user@host:/path/to/dir dir
でコピー出来る。
尚、ディレクトリごとコピーする場合は、シンボリックリンクはその実態のファイルに置き換えられてコピーされることに注意。
最終更新:2007年07月20日 00:40