ssh コマンド(鍵生成・鍵認証)

更新日:2009/07/06


トップ→鍵認証SSH( 1.鍵ファイル作成2.環境ファイル設定3.鍵認証でSSHログイン4.鍵認証でWinSPC/SFTP5.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/SFTP5.sftpで自動転送6.鍵認証でFileZilla/SFTP、 )












このホームページは すべてリンクフリーです。

inserted by FC2 system