我每次都会生成公钥/私钥,以便使用 ssh 连接到服务器,而无需写入密码。我正在使用:
客户:Debian GNU/Linux 8.2 (jessie) 带内核 3.16.0-4-amd64 OpenSSH_6.7p1 Debian-5、OpenSSL 1.0.1k 2015 年 1 月 8 日
服务器:CentOS 6.6 版(最终版),内核为 2.6.32-504.16.2.el6.x86_64 OpenSSH_5.3p1,OpenSSL 1.0.1e-fips,2013 年 2 月 11 日
但是当我尝试使用连接到服务器时ssh -p ## 用户@服务器,ssh 仍然提示输入密码。
我想声明当我输入密码时我可以登录服务器,但我想不使用密码登录。
有人知道如何解决这个问题吗?
客户
ssh -vvv
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-E log_file] [-e escape_char]
[-F configfile] [-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport] [-l login_name] [-m mac_spec]
[-O ctl_cmd] [-o option] [-p port]
[-Q cipher | cipher-auth | mac | kex | key]
[-R [bind_address:]port:host:hostport] [-S ctl_path] [-W host:port]
[-w local_tun[:remote_tun]] [user@]hostname [command]
服务器
ssh -vvv
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
usage: ssh [-1246AaCfgKkMNnqsTtVvXxYy] [-b bind_address] [-c cipher_spec]
[-D [bind_address:]port] [-e escape_char] [-F configfile]
[-I pkcs11] [-i identity_file]
[-L [bind_address:]port:host:hostport]
[-l login_name] [-m mac_spec] [-O ctl_cmd] [-o option] [-p port]
[-R [bind_address:]port:host:hostport] [-S ctl_path]
[-W host:port] [-w local_tun[:remote_tun]]
[user@]hostname [command]
客户
ls -l .ssh/
total 12
-rw------- 1 client client 1766 nov 8 12:51 id_rsa_zeus
-rw-r--r-- 1 client client 395 nov 8 12:51 id_rsa_zeus.pub
-rw-r--r-- 1 client client 3493 ago 19 15:56 known_hosts
ls -Z .ssh/
? id_rsa_zeus ? id_rsa_zeus.pub ? known_hosts
服务器
ls -l .ssh/
total 4
-rw------- 1 server user 395 nov 8 12:21 authorized_keys
ls -Z .ssh/
-rw------- server user ? authorized_keys
答案1
尝试:
ssh -p 22 -i /完整路径/privateKeyFileName -l 用户服务器名称
如果这不起作用,请检查 SSH 授权日志(例如,OpenSSH 的 /var/log/authlog,尽管 OpenSSH 便携版可能会有所不同……尝试“ls -ltr /var/log/”来确定最近更改的日志文件)以查看是否提供线索。如果公钥位于服务器上的正确位置(在 ~/.ssh/authorized_keys 文件中),则最有可能的问题在于权限。
顺便说一句,我不确定 -p 0000 是否有效。默认值为 22,您绝对可以将其自定义为 1-65535 之间的其他数字。