「ssh scp」の編集履歴(バックアップ)一覧はこちら
「ssh scp」(2007/07/20 (金) 00:40:40) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**準備
/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
でコピー出来る。
尚、ディレクトリごとコピーする場合は、シンボリックリンクはその実態のファイルに置き換えられてコピーされることに注意。
**準備
/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
でコピー出来る。
尚、ディレクトリごとコピーする場合は、シンボリックリンクはその実態のファイルに置き換えられてコピーされることに注意。