ssh コマンド(鍵生成・鍵認証)
更新日:2009/07/06
トップ→鍵認証SSH( 1.鍵ファイル作成、 2.環境ファイル設定、 3.鍵認証でSSHログイン、 4.鍵認証でWinSPC/SFTP、 5.sftpで自動転送、 6.鍵認証でFileZilla/SFTP、 )
sftp ファイル自動転送/sftp(linux/unix)
ファイルの転送をsftp を使用しておこないます。
sftp -bバッチファイル ID@domain_URL
で自動実行が可能ですね。
sftp 起動オプション は以下のとおりです。(主要のみ)
-B バッファサイズ:デフォルトは 32768 バイト -b バッチファイル :下記でコマンドを示す。 -C 圧縮機能を使用
起動オプションは他にもいろいろありますが、とりあえず上記オプション程度で問題ないかと?
sftp バッチ・コマンド は以下のとおりです。
ローカルコマンド put [-P ] ローカルパス名 [リモートパス名 ] ローカルファイル名 ローカルファイル送出 lls [lsオプション [パス名 ]] ローカルディレクトリのファイルを表示 lcd パス名 ローカルディレクトリ名へ移動 lpwd ローカルパス取得 lmkdir パス名 ローカルディレクトリ作成 リモートコマンド get [-P] リモートパス名 [ローカルパス名] リモートファイル名 リモートファイルを取得 ls [-1aflnrSt ] [パス名] リモートディレクトリのファイルを表示 cd パス名 リモートディレクトリ名 リモートディレクトリ名へ移動 rename 古いパス名 新しいパス名 名前を変更 ln 古いパス名 新しいパス名 シンボリックリンク作成 rm パス名 ファイル削除 mkdir パス名 ディレクトリ作成 chmod モード パス名 パーミッション設定 chown ユーザID パス名 オーナー設定 chgrp グループID パス名 グループ設定 df [-hi ] [パス名 ] ファイルシステムの使用状況を表示 exit,quit sftpの終了 help 例外処理中止:コマンドの前にプレフィックス'-' をつける -mkdir kkc
sftp の対話形式コマンドは上記バッチコマンド以外に以下のコマンドが使用できます。
symlink 古いパス名 新しいパス名 シンボリックリンクを作成 rmdir パス名 ディレクトリの削除 bye sftp を終了します。 ! コマンド ローカルマシン上のシェルで、コマンド を実行 ? HELPと同じ
公開鍵 ファイル自動転送/sftp(linux/unix)
公開鍵で自動転送を行うには ssh-keygen で認証鍵を生成する必要があります。puttygen で作成した認証鍵はputty, winSPC などでは問題なく動くのですが、Linux 上での sftp 自動転送ではどうもうまくいきません。
ところが、ssh-keygen で作成した鍵を使用するとうまくいきます。
なにか設定がまずかったのかもしれません。
ここでは、それ以上追求するのはやめて、ssh-keygen で認証鍵を作成して自動実行してみます。
[hoge@hoge ~]$ ssh-keygen -t dsa
自動実行の場合、パスフェースは入力しません。
すべて空「enter」です。
ここで、~hoge/.ssh に DSA の公開鍵、秘密鍵がそれぞれ id_dsa.pub id_dsa として作成されて います。
この公開鍵 id_dsa.pub を接続先マシンの 接続ID/.ssh にコピーします。
コピーは scp など利用すると便利でしょう。
わたしは、両マシンにputty でログインして vi にクリップモードコピーをしました。
[hoge@hoge ~]$ scp ~hoge/.ssh/id_dsa.pub hoge@aiteIPADR
接続先にログインして設定します。
接続先に.ssh 作成、authorized_keys2 ファイルを作成します。
[hoge@hoge2 ~]$ mkdir .ssh
[hoge@hoge2 ~]$ chmod 700 .ssh/
[hoge@hoge2 ~]$ cd .ssh/
[hoge@hoge2 ~]$ touch authorized_keys2
[hoge@hoge2 ~]$ chmod 600 authorized_keys2
[hoge@hoge2 ~]$ cat ~/id_dsa.pub >>authorized_keys2
では実際にファイルの転送を行います。
[hoge@hoge ~]$ vi sftp.bat
put sftp.bat
bye
[hoge@hoge ~]$ sftp -b sftp.bat hoge@aiteIPADR
これで aiteIPADR の hoge の直下に sftp.bat ファイルが転送されます。
実際には sftp.bat 内に cd, lcd, put, get などのコマンドを記述してファイルを転送します。
ssh公開鍵でログイン /ssh(linux/unix)
まあ、当然といえば当然ですが、sftp でファイル転送の自動実行が可能ということは ssh でも ログイン可能です。このさい、ssh-keygen でパスフェースを入力していなければ、相手先でのパスワードの入力は不要 になります。
いちいちパスワードの入力不要なのは便利です。
ただし、秘密鍵ファイルは取られないようにしないと、危ないです。
もっとも、秘密鍵ファイルを取られるということは、パスワードを盗まれるとあまり変わらないと 思いますので、・・・・
実行は以下の通りです。
[hoge@hoge ~]$ ssh hoge@aiteIPADR
トップ→鍵認証SSH( 1.鍵ファイル作成、 2.環境ファイル設定、 3.鍵認証でSSHログイン、 4.鍵認証でWinSPC/SFTP、 5.sftpで自動転送、 6.鍵認証でFileZilla/SFTP、 )
このホームページは すべてリンクフリーです。