回答:
試してください:
sftp -o "IdentityFile=keyname" jay@server.name.com
で-o
有効なオプションを渡すために使用できます~/.ssh/config
。
IdentityFile
常に自動的に与えられることにオプションを、チェックアウトUtahJarheadにそれを置くことについての答えを~/.ssh/config
従来の方法を使用して、PUBLICキーをサーバーにコピーします。
サーバー上:
.ssh
存在しない場合は作成します。[[!-d "$ {HOME} /。ssh"]] && mkdir -p "$ {HOME} /。ssh"
cat /path/to/public_key.pub >> "$ {HOME} /。ssh / authorized_keys"
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
最近この問題に遭遇しましたが、Macbookのデフォルトのターミナル設定で次のように機能しました。
sftp -i ./privateFilePath.key username@url.com
保護されていないプライベートキーファイルで昇格される可能性があることに注意してください!その場合、このコマンドを実行して、他の人が自分の秘密鍵にアクセスできないようにする必要があります。
chmod 600 privateFilePath.key
場合によっては、コマンドの前にsudoを配置する必要があります。これは、adminで保護されたディレクトリで作業している場合のみです。
お役に立てば幸いです:)
-i
オプションが機能していないと言われたときに、なぜこれが役立つと期待するのですか?