質問: キーファイルを使用してサーバー間でデータをsftp転送する方法 私はscpできません。他のサーバーはsftp接続しか受け付けません。現在、私はしようとしていますsftp jay@server.name.com:/files> put -r ~/ -i keynameは機能せず、illegal option -- iで解決されます。
回答: 従来の方法でpublicキーをサーバーにコピーします。サーバー上: 存在しない場合は.sshを作成します。 [[! -d "$ {home} /。ssh"]] && mkdir -p "$ {home} /。ssh" 公開鍵を実装します。 cat /path/to/public_key.pub >> "$ {home} /。ssh/authorized_keys" 適切な権限を設定します。 opensshは問題のファイルのアクセス許可について非常に肛門です: chmod go-rwx "$ {home}" "$ {home} /。ssh/authorized_keys"その後、privateキーを使用してクライアントからログインできるようになります。転送を自動化するには、実行するコマンドのリストを含む単なるテキストファイルであるバッチファイルを使用します。 echo "put filename.foo /safe/path/filename.foo" >> /tmp/batchfile.txt sftp -b /tmp/batchfile.txt -oidentityfile =/path/to/private_key user @ host または、〜/ .ssh/configファイルをssh_config形式で作成して、将来これを入力することもできます。 sftp -b /tmp/batchfile.txt host ~/.ssh/configのサンプルコンテンツ ホストthe_hostname ユーザーuser_name identityfile /path/to/private_key