我可以使用同一台机器作为 SSH 的客户端和服务器吗?

我可以使用同一台机器作为 SSH 的客户端和服务器吗?

为了进行开发测试,我需要设置一个 SFTP 服务器。所以我想知道是否可以使用同一台机器作为客户端和服务器。我试过了,但一直出现此错误:

Permission denied (publickey).
Connection closed

答案1

简短的回答是:

cat ~/.ssh/id_rsa.pub >>~/.ssh/authorized_keys

答案2

[thecoshman] 我在 Windows XP 下,我正在使用 OpenSSH 并且为了进行测试我只需使用命令提示符。

[coneslayer] 命令:ssh -v返回

C:\Program Files\OpenSSH\bin>ssh -v agharroud@localhostOpenSSH_3.8.1p1,OpenSSL 0.9.7d 2004 年 3 月 17 日`
debug1:正在读取配置数据 /etc/ssh_config
debug1:连接到本地主机 [127.0.0.1] 端口 22。debug1
:已建立连接。 debug1:身份文件 /home/agharroud/.ssh/identity 类型 -1 debug1:身份文件 /home/agharroud/.ssh/id_rsa 类型 1
debug1:身份文件 /home/agharroud/.ssh/id_dsa 类型 -1
debug1:远程协议版本 2.0,远程软件版本 OpenSSH_3.8.1p1
debug1:匹配:OpenSSH_3.8.1p1 pat OpenSSH*
debug1:为协议 2.0 启用兼容模式
debug1:本地版本字符串 SSH-2.0-OpenSSH_3.8.1p1
debug1:SSH2_MSG_KEXINIT 已发送
debug1:SSH2_MSG_KEXINIT 已接收
debug1:kex:server->client aes128-cbc hmac-md5 none
debug1:kex:client->server aes128-cbc hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024 <1024 <8192)已发送
debug1:期望 SSH2_MSG_KEX_DH_GEX_GROUP
debug1:SSH2_MSG_KEX_DH_GEX_INIT 已发送
debug1:期望 SSH2_MSG_KEX_DH_GEX_REPLY
debug1:主机“localhost”已知且与 RSA 主机密钥匹配。
debug1:在 /home/agharroud/.ssh/known_hosts:1 中找到密钥
debug1:ssh_rsa_verify:签名正确
debug1:SSH2_MSG_NEWKEYS 已发送
debug1:期望 SSH2_MSG_NEWKEYS
debug1:SSH2_MSG_NEWKEYS 已接收
debug1:SSH2_MSG_SERVICE_REQUEST 已发送
debug1:SSH2_MSG_SERVICE_ACCEPT 已接收

                        ****USAGE WARNING****

这是一个私人计算机系统。此计算机系统,包括所有相关设备、网络和网络设备(具体包括互联网访问)仅供授权使用。此计算机系统可能因所有合法目的而受到监控,包括确保其使用得到授权、管理系统、促进防止未经授权的访问以及验证安全程序、生存能力和操作安全性。监控包括授权实体为测试或验证此系统的安全性而进行的主动攻击。在监控期间,信息可能会被检查、记录、复制并用于授权目的。通过此系统放置或发送的所有信息(包括个人信息)都可能受到监控。

使用此计算机系统,无论授权与否,均视为同意监控此系统。未经授权的使用可能会使您受到刑事起诉。监控期间收集的未经授权使用的证据可能会被用于行政、刑事或其他不利行动。使用此系统即视为同意出于这些目的进行监控。

debug1:可以继续的身份验证:publickey
debug1:下一个身份验证方法:publickey
debug1:尝试私钥:/home/agharroud/.ssh/identity
debug1:提供公钥:/home/agharroud/.ssh/id_rsa
debug1:可以继续的身份验证:publickey
debug1:尝试私钥:/home/agharroud/.ssh/id_dsa
debug1:没有其他身份验证方法可以尝试。
权限被拒绝(公钥)。

答案3

目前尚不清楚您的问题是否具体涉及客户端=服务器,或者您是否根本无法部署 sftp 服务器。

您应该检查:

  • 首先,你能从另一台机器用你的用户名 ssh 到这台机器吗?
  • 你已经安装并启动了 ssh 服务器了吗?
  • 您的用户名是否有权登录 ssh 服务器配置?
  • 您是否启用了防火墙?请尝试禁用它以进行测试。

在 Linux 中我总是这样做,即使我只是想运行以另一个用户身份登录但在我的桌面会话中的图形应用程序:

ssh [-X] [-A] [etc] username@localhost

(将“用户名”替换为您用于连接机器的名称。不要替换 localhost,它实际上应该是“localhost”。)

我猜如果你甚至不能执行 ssh username@localhost 你就无法执行自己的 sftp。

相关内容