準備

/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
でコピー出来る。
尚、ディレクトリごとコピーする場合は、シンボリックリンクはその実態のファイルに置き換えられてコピーされることに注意。

タグ:

+ タグ編集
  • タグ:

このサイトはreCAPTCHAによって保護されており、Googleの プライバシーポリシー利用規約 が適用されます。

最終更新:2007年07月20日 00:40