$ wget -r -np -nH --cut-dirs=5 -R 'index.html*' http://www.hoge.com/hige1/hoge2/hoge3/hoge4/hoge5/
ローカルなネットワークでいちいちパスワードを入力するのがわずらわしいので公開鍵認証をパスフレーズなしで設定する。
まずローカルサーバー上で公開鍵を生成する。
次にリモートのサーバーに公開鍵を送る。
まずローカルサーバー上で公開鍵を生成する。
$ ssh-keygen -t rsa -b 2048すると公開鍵ファイルの名前とパスフレーズを尋ねられる。そのままEnterを押し続ければ秘密鍵id_rsa、公開鍵id_rsa.pubがパスフレーズなしで生成される。
次にリモートのサーバーに公開鍵を送る。
$ scp id_rsa.pub hoge@192.168.1.xxx:~/公開鍵を~/.ssh/authorized_keysに追加する。.sshやauthorized_keysがない場合はパーミッションに注意して作成する。
$ mkdir ~/.ssh $ chmod 700 ~/.ssh $ cd ~/.ssh $ touch authorized_keys $ chmod 600 authorized_keys $ cat ~/id_rsa.pub >> authorized_keys $ rm ~/id_rsa.pubこれでパスフレーズなしでsshできるようになる。秘密鍵にパスフレーズをつけた場合はパスフレーズつきの公開鍵認証になりsshの際に鍵を生成したときに設定したパスフレーズが尋ねられる。上手くいかないときは.sshやauthorized_keysのパーミッションを確認。リモートとローカルを混同していたり、authorized_keysのファイル名のつづりが間違っているとか意外と単純な間違いに気づかない(少なくとも自分はこれではまった)。
秘密鍵認証で接続するサーバーが複数ある場合は秘密鍵を使い分けたほうがよい。特に内部ネットワーク用にパスフレーズなし認証で作った鍵を外部サーバーに使うのはセキュリティ上よくない(いずれにせよ鍵の管理は慎重に)。鍵を指定するには、
~/.ssh/configを作成し以下のように記述する。
$ ssh -Y -C -i id_rsa hoge@192.168.1.xxxのようにiオプションで指定できる(省略するとデフォルトでid_rsaが指定されるみたい)。いちいち指定するのが面倒なのでsshの設定ファイルで鍵を指定する。さらにホスト名やユーザ名も設定しておけるのでsshの際の入力がはぶけて便利。
~/.ssh/configを作成し以下のように記述する。
Host hogelocal HostName 192.168.1.xxx IdentityFile ~/.ssh/id_rsa User hoge Host hogepublic HostName hoge.org IdentityFile ~/.ssh/id_rsa.hoge.org User hogehogeこれで秘密鍵を自動で選択してくれるだけでなくホスト名やユーザ名を省略できる。
ssh -Y -C hogepublicとするだけで、
ssh -Y -C -i id_rsa.hoge.org hogehoge@hoge.orgと同じように接続できる。
最新コメント