我有一个包含 SSH 私钥的文件。当我尝试使用命令访问服务器时
ssh -vvv -i key *@*.*.*.* -p2222
,它验证了密钥 -
debug1: Trying private key: key
debug3: sign_and_send_pubkey: ED25519 SHA256:9Lxb74WbUExNBifvtYtUuqI4gebuim0hg024jSqlvDo
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 52
debug1: Authentication succeeded (publickey).
之后连接失败,提示“此服务仅允许 sftp 连接。”。
但当我尝试使用相同的密钥通过 sftp 连接时
sftp -vvv -i key *@*.*.*.* -p2222
,密钥不再被验证。
debug1: Trying private key: key
debug3: sign_and_send_pubkey: ED25519 SHA256:9Lxb74WbUExNBifvtYtUuqI4gebuim0hg024jSqlvDo
debug3: send packet: type 50
debug2: we sent a publickey packet, wait for reply
debug3: receive packet: type 51
你能帮我找出问题所在吗?
答案1
sftp -vvv -i key *@*.*.*.* -p2222
问题在于你的-p2222
选择。有两个问题:
OpenSSH
sftp
命令的用途-p
与 不同ssh
。要为 sftp 指定远程 SSH 端口,请使用-P
(大写 P)选项。OpenSSH
sftp
命令不接受命令行中该位置的 -P(或 -p)。您需要将该选项移至 user@host 参数之前。
简而言之,尝试一下这个:
sftp -vvv -i key -P2222 *@*.*.*.*