Unix のサーバーに sftp 接続しています。パスワードなしで、構文を使用して接続し、コマンドを実行します
sftp -b $user@$server_name
パスワードを使用せずにリモートサーバーに接続するためのシェルスクリプトを作成する方法を教えてください。
~/.ssh/config ファイルを使用できます。
#
# ~/.ssh/config
#
Host servername
Hostname 127.127.127.127
Port 22
User root
#EOF: config
次に、単に「ssh servername」で接続します。パスワードを使用したくない場合は、SSH キーを使用できます。これを行う方法に関する優れたチュートリアルは次のとおりです> http://www.cyberciti.biz/tips/linux-multiple-ssh-key-based-authentication.html
端末からユーザー/サーバーを渡すだけの場合は、これを行うことができます。
#!/bin/bash
sftp -b "$1"@"$2"
次に、この「./sftp.shユーザーサーバー」のように使用します
このようにSCPを使用してください。
scp -P 22 user@server:/dir/file.tgz ~/Desktop/
このように SFTP を使用します。
sftp user@server:/dir/file.tgz ~/Desktop/file.tgz
これを試すこともできます。
sftp user@host <<EOF
get /dir/file.tgz
rm /dir/file.tgz
EOF
これを行う最善の方法は、クライアントでキー ペアを作成し、そのキーをターゲット ユーザーの に追加すること~/.ssh/authorized_keys
です。
キー ペアを作成するには、実行ssh-keygen
してパスワードを要求されたら、Enter キーを押して「パスワードなし」を示します。次に、サーバー上で を実行するssh-copy-id $user@$server_name
か手動で作成し、 の内容をクライアントからそこに~/.ssh/authorized_keys
コピーします(一部のマシンでは使用できないため、手動で行う必要があります)。~/.ssh/id_rsa.pub
ssh-copy-id
代わりにキーを使用する必要があるため、パスワードなしでssh
実行できるようになります。scp
うまくいかない場合は~/.ssh/
、両方のマシンでディレクトリとコンテンツのアクセス許可が正しいことを確認してください。ディレクトリは0700
( drwx------
) で、ファイルは ( ) である必要があり600
ます-rw-------
。また、クライアントとサーバーの両方で鍵認証が有効になっていることも確認してください。