设置ssh免输密码登录远程linux服务器。
现有一台linux服务器,ip:123.56.71.70 用户名:root 密码:phpernote.comYhm@163.com
1、在本地客户端生成公私密钥
命令行输入
ssh-keygen -C "phpernote.com" -f ~/.ssh/phpernote_id_rsa
参数解释:
-C 添加注释,生成的公钥字符串的末尾会带上该参数,上传到服务器的配置文件中可以当成一个标记。
-f 指定用来保存密钥的文件名,不指定文件名会在默认目录 (~/.ssh) 下生成两个文件(id_rsa id_rsa.pub),指定了则只生成指定的文件。
然后猛击 enter 键,之后会提示你输入密钥保存文件夹(默认路径~\.ssh\),密码(输入为空表示无密码),连敲两次 enter 键跳过。
2、将公钥上传到服务器
ssh-copy-id -i ~/.ssh/phpernote_id_rsa root@123.56.71.70 -p 22
这个过程将把你本地的文件 ~/.ssh/phpernote_id_rsa 里面的内容拷贝到了服务器的 /root/.ssh/authorized_keys 文件里面去了(注意:这里使用的是 root 账号登录的,所以会拷贝到 root 的用户目录,如果使用其他账号,则服务器地址是:/home/用户名/.ssh/authorized_keys)。
3、免密登录测试
ssh远程连接服务器,直接登录即可。
ssh root@123.56.71.70 -p 22
注意:如果经过以上操作仍旧要求输入密码,则可以:
检查服务器的SSH日志文件(通常位于/var/log/auth.log或/var/log/secure),以查找与SSH连接相关的任何错误或警告信息。
比较常见的是目录或者 authorized_keys 文件权限的问题。