我可以使用私钥验证并提示输入密码,通过 SSH 成功进入远程服务器。
但是,当我尝试使用相同的密码短语 SCP 文件时,权限被拒绝。这是我的输出:
$ scp -v [file] [user]@[remoteserver.com]:/home/[my dir]
Executing: program /usr/bin/ssh host [remoteserver.com], user [user], command scp -v -t /home/[my dir]
OpenSSH_5.3p1 Debian-3ubuntu7, OpenSSL 0.9.8k 25 Mar 2009
debug1: Reading configuration data /home/[my dir].ssh/config
debug1: Applying options for [remoteserver.com]
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
debug1: Connecting to [remoteserver.com] [[remoteserver.com]] port 22.
debug1: Connection established.
debug1: identity file /home/[user]/.ssh/aws_corp type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.3p1 Debian-3ubuntu7
debug1: match: OpenSSH_5.3p1 Debian-3ubuntu7 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.3p1 Debian-3ubuntu7
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '[remoteserver.com]' is known and matches the RSA host key.
debug1: Found key in /home/[my dir]/.ssh/known_hosts:12
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /home/[my dir]/.ssh/aws_corp
debug1: PEM_read_PrivateKey failed
debug1: read PEM private key done: type <unknown>
Enter passphrase for key '/home/[my dir]/.ssh/aws_corp':
debug1: read PEM private key done: type RSA
Connection closed by [remote server]
lost connection
我搜索过答案,但找不到完全相同的问题,或者只是我太笨了。无论如何,任何帮助我都非常感谢。干杯!
答案1
你的 scp没有说“权限被拒绝”任何地方。它只是说“连接已关闭”,这可能意味着服务器缺少scp
命令,或者由于某种原因无法启动它。
尝试一下
ssh [user]@[remoteserver.com] scp
。如果显示“用法:scp ...”,则 scp 没问题。如果显示“未找到命令”,则...如果您在远程服务器上具有管理员访问权限,请检查那里的日志;甚至可以
sshd -rdddp 222
以调试日志模式启动。
答案2
我遇到了这个问题。就我而言,当我尝试在服务器(chroot jailed)上运行 scp 时,我得到了未知用户错误。要解决此问题:
请注意<jail>
下面的代码是您为 ssh 会话登录创建的 chrooted jail 文件系统的完整路径。
sudo cp -vf /usr/bin/strace <jail>/bin
ldd <jail>/bin/strace
sudo cp -vf ...
将每个缺失的库从主系统复制到<jail>/lib64
目录
在 chroot 监禁会话中运行:
strace scp
使用 -vf 选项将输出中找不到的库复制到 /lib64 目录。在我的例子中,需要复制 libnss_compat.so.2
此后,chrooted jail 中的 scp 就可以工作了!