我目前正在运行 linuxmint 和 openssh。我的电脑上有 2 个帐户 Joe 和 Bob。我将 joe 创建的密钥和密码存储在 /home/joe/.ssh/ 文件夹中。我可以使用 ssh/sftp 连接到 Joe。但我无法连接到 Bob。我的问题是,即使两个帐户都在同一台机器上,我是否必须为 Bob 创建一组新密钥才能连接到他?此外,我曾尝试为 sftp 用户 chroot jail(子系统 sftp internal-sftp)尝试使用它时,我被锁定在两个帐户之外。当我使用密码而不是密钥密码时,它起作用了。
谢谢
答案1
我可以使用 ssh/sftp 连接到 Joe。但无法连接到 Bob。
我的看法是:Joe 有公钥,并且把它放在一个authorized_keys
文件中,而 Bob 没有
我的问题是,即使两个帐户都在同一台机器上,我是否必须为 Bob 创建一组新密钥才能连接到他?
您可以将公钥复制到 Bob 的 authorized_keys 文件中。尝试ssh-copy-id bob
或编辑 Bob 上的 /home/joe/.ssh/authorized_keys。
为了使 SSH 密钥能够工作,HOME 目录的权限必须拒绝组和“其他人”的写入,因为.ssh
目录写入权限可以控制该目录,因此可以重命名并重新创建该目录。
我还尝试过将 sftp 用户 chroot jail(子系统 sftp internal-sftp)当我尝试使用它时,我被锁定在两个帐户之外。当我使用密码而不是密钥密码时,它起作用了。
听起来你想用scponly在 APT 中,请尝试apt-get install scponly
。
答案2
为了使用 SSH 登录到远程计算机上的用户帐户,您需要该帐户的公钥位于~/.ssh
该帐户的目录中,并且您需要与公钥匹配的私钥位于~/.ssh
您尝试连接的本地计算机上的目录中。
您可以使用-i
选项来ssh
明确指定除默认私钥文件之外的其他文件~/.ssh
。
您可以为任意数量的用户使用相同的私钥和公钥对。但是,密钥必须匹配,也就是说必须以一对的形式创建。如果您丢失了私钥,则无法恢复公钥。如果您丢失了公钥,您可以使用命令从私钥重新生成公钥openssl
。
您可以将允许登录帐户的其他用户的公钥放入其中~/.ssh/authorized_keys
。
除了在远程计算机上有私钥文件外~/.ssh
,阻止您登录的最常见错误是文件权限。请确保您的目录权限不超过 700,并且~/.ssh
任何私钥上的文件权限不超过 400。id_dsa
id_rsa