通过设置ssh怎么无密码登录linux服务器

通过设置ssh怎么无密码登录linux服务器?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

创新互联专注为客户提供全方位的互联网综合服务,包含不限于成都做网站、成都网站设计、绥化网络推广、微信小程序定制开发、绥化网络营销、绥化企业策划、绥化品牌公关、搜索引擎seo、人物专访、企业宣传片、企业代运营等,从售前售中售后,我们都将竭诚为您服务,您的肯定,是我们最大的嘉奖;创新互联为所有大学生创业者提供绥化建站搭建服务,24小时服务热线:028-86922220,官方网址:www.cdcxhl.com

rsa认证登录方式

制作密钥对

在客户端(本地机器)终端下输入以下命令

ssh-keygen -t [rsa|dsa]

rsa和dsa代表不同的算法

例如:

ssh-keygen -t rsa

一直回车就对了(不用设置密码)

将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub(如果用dsa则生成id_dsa,id_dsa.pub)

生成位置在/root/.ssh/文件夹下(我用的是root用户所以在root下,生成过程会有提示文件位置)

.ssh 是隐藏文件夹 使用 ls -a查看

将公钥放到服务器指定位置

方法一、直接复制

1、将公钥复制到服务器的root用户下的.ssh文件夹(用哪个用户登录就复制到哪个用户下的.ssh文件夹下)

scp /root/.ssh/id_rsa.pub root@172.16.0.164:/root/.ssh/

2、安装公钥

登录到服务器cd /root/.ssh/

cat id_rsa.pub >> authorized_keys

方法二、使用ssh-copy-id命令复制(推荐)

一个命令直接就ok了

ssh-copy-id root@172.16.0.164

验证

不用输入密码则成功,否则失败

ssh root@172.16.0.164

注意事项

上面操作测试过是没有问题的

linux的版本和使用的用户不同会有差别的。

如果出现问题可以考虑以下两点

1、id_rsa.pub和authorized_keys的文件权限问题

chmod 600 authorized_keys
chmod 700 ~/.ssh

2、ssh的配置文件

 vim /etc/ssh/sshd_config
 #启用 RSA 认证,默认为yes
 RSAAuthentication yes
 启用公钥认证,默认为yes
 PubkeyAuthentication yes
 #root用户ssh登录
 PermitRootLogin yes

(这些配置我都是没有修改的,我的是redhat7.2)

自定义写个简单shell脚本

在常用文件夹下创建个文件

touch 164.sh

编辑文件

文件内容 ssh root@172.16.0.164

 vim 164.sh
 #添加内容
 ssh root@172.16.0.164
 保存退出
 :wq

增加用户的执行权限

chmod u+x 164.sh

搞定 结合tab键使用更爽哟

./164.sh

expect命令免密登录方式

可能你觉得需要操作服务器系统不好,当然也可以只在本地操作。

使用expect命令只需要本地操作,前提是你本地有expect这个命令

1、创建一个文件

touch expectssh.sh

添加下面内容,将用户 、ip、密码修改成你自己的

 #!/usr/bin/expect -f
 set username root 
 set hostname 172.16.0.164 
 set password 123456
 spawn ssh $username@$hostname
 set timeout 1
 expect { "yes/no" 
  {send "yes\r";exp_continue}
 }
 expect "$username@$hostname's password:"
 send "$password\r"
 interact

2、添加expectssh.sh执行权限

chmod u+x expectssh.sh

3、执行命令

expect expectssh.sh

看完上述内容,你们掌握通过设置ssh怎么无密码登录linux服务器的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注创新互联行业资讯频道,感谢各位的阅读!


本文标题:通过设置ssh怎么无密码登录linux服务器
文章位置:http://pwwzsj.com/article/ggcdce.html