2

Unix のサーバーに sftp 接続しています。パスワードなしで、構文を使用して接続し、コマンドを実行します

sftp -b $user@$server_name

パスワードを使用せずにリモートサーバーに接続するためのシェルスクリプトを作成する方法を教えてください。

4

3 に答える 3

1

~/.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
于 2013-11-11T14:23:20.453 に答える
0

これを行う最善の方法は、クライアントでキー ペアを作成し、そのキーをターゲット ユーザーの に追加すること~/.ssh/authorized_keysです。

キー ペアを作成するには、実行ssh-keygenしてパスワードを要求されたら、Enter キーを押して「パスワードなし」を示します。次に、サーバー上で を実行するssh-copy-id $user@$server_nameか手動で作成し、 の内容をクライアントからそこに~/.ssh/authorized_keysコピーします(一部のマシンでは使用できないため、手動で行う必要があります)。~/.ssh/id_rsa.pubssh-copy-id

代わりにキーを使用する必要があるため、パスワードなしでssh実行できるようになります。scpうまくいかない場合は~/.ssh/、両方のマシンでディレクトリとコンテンツのアクセス許可が正しいことを確認してください。ディレクトリは0700( drwx------) で、ファイルは ( ) である必要があり600ます-rw-------。また、クライアントとサーバーの両方で鍵認証が有効になっていることも確認してください。

于 2013-11-11T14:32:08.947 に答える