需求
在服务器使用 git pull
命令,每次都要输入密码。要配置个密钥登录,使得流程简单些。
问题
登录新创建的ssh账号,发现无权进 ~/.ssh
文件夹。便让系统管理员按我说的,新增或编辑 ~/.ssh/config
(SSH用户配置文件
),上传配置文件指定的SSH登录私钥到 ~/.ssh
目录。
完毕后,按正常情况,就可以直接用别名登录ssh了。哪成想报错了:
ssh: Could not resolve hostname myname: Name or service not known
输入-v参数调试详细输出如下
OpenSSH_8.0p1, OpenSSL 1.1.1k FIPS 25 Mar 2021
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
debug1: configuration requests final Match pass
debug1: re-parsing configuration
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Reading configuration data /etc/ssh/ssh_config.d/05-redhat.conf
debug1: Reading configuration data /etc/crypto-policies/back-ends/openssh.config
ssh: Could not resolve hostname github: Name or service not known
ssh登录别名github找不到主机名。调试时根本就没读取到 ~/.ssh/config
文件。
误以为是不是配置文件的路径改了。
解决
搞了大半天,才发现是 ~/.ssh
目录的权限问题。
尝试输入 chmod 700 .ssh
, SSH就可以正常使用主机别名登录了。
无权限访问的目录,却可以自己改权限再进去。都没想到居然可以这样。
具体设置参看: SSH密钥登录
总结
SSH客户端使用密钥和别名登录,自己配置过很多次。配置时,拥有最高级root权限,无论拥有什么权限问题,都轻松解决。这次算是又栽坑里了。
Linux系统,没找到文件,可能不是真没找到,而是没有权限。谨记!