ログインするSFTPサーバーの詳細を以下に提供しました。
IPアドレス、ユーザー名、パスワード、ポート(8800)、パスワードで保護されたppkファイル。
次のコマンドを使用してサーバーにログインしようとしましたが、接続できませんでした。 (コマンドを実行した後、キーのパスワードを提供したいと思います。キーのユーザー名とパスワードがあります。)
sftp -i key.pem username@ipaddress -P8800
エラーメッセージ
ssh: connect to host xx.xx.xx.xxx port 22: Connection timed out
Couldn't read packet: Connection reset by peer
ただし、次のコマンドを使用すると、リモートでサーバーにログインできます。
telnet ipaddress 8800
Telnetは機能しますが、sftpコマンドが機能しないのはなぜですか? sftpコマンドでポート番号を渡すには?
答え1
貼り付けられたエラーを見ると、SFTPが引き続きポート22に接続しようとしていることが明らかになります。 「-P」パラメーターは無視されます。
パラメータの順序は非常に重要です。それ以外の場合は、少なくとも「username@IPaddress」がコマンドの末尾になければなりません。
sftp -P 8800 -i key.pem username@ipaddress
答え2
-i
RedHat / Fedora / CentOSには、pemファイルを指定するためのパラメータはありませんsftp
。構文は次のとおりです。
sftp -P {port} -oIdentityFile={path to pem} {user}@{host}