关于ssh密钥配置还需要输入密码的终极解决办法

测试A服务器

useradd test

passwd test

su  test

在ssh目录里创建密钥

cd ~/.ssh/

ssh-keygen -t rsa -f test_rsa // -f 是给密钥起名字(yilin)

查看目录

authorized_keys  yilin_rsa  yilin_rsa.pub

把公钥放到authorized_keys,没有就自手动创建个,这里面最重要的是这一步,这样才能不互信的情况传东西。

cat  yilin_rsa.pub >> authorized_keys

修改权限

chmod  700 /home/user/.ssh

chmod  600 authorized_keys

拷贝出来

sz yilin_rsa (不要关闭当前窗口以免登陆失败)

xshell  修改登陆选择密钥登陆 

看是否登陆成功,成功后修改 ssh配置文件/etc/ssh/sshd_config

PermitRootLogin yes

PasswordAuthentication yes

修改并去掉注释和添加注释

PermitRootLogin no//去掉注释禁止root账号登陆服务器

#PasswordAuthentication yes//添加注释

RSAAuthentication yes #开启
PubkeyAuthentication yes #开启

然后重启systemctl restart sshd

这个时候当用B机器 scp 写脚本的时候直接把yilin_rsa私钥拷贝到B机器 不需要做密钥互信即可传输,例:

测试B服务器

scp -i /usr/local/src/yilin_rsa  -r /root/.jenkins/workspace/java-test/target/test-1.0.0-SNAPSHOT.jar guangzhou@172.16.0.8:/data/java-test

原文地址:https://www.cnblogs.com/sunju/p/11073530.html