设置ssh无密码登录linux服务器的方法

 更新时间:2019年08月28日 09:56:45   作者:秦时的明月夜  
这篇文章主要介绍了设置ssh无密码登录linux服务器,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

每次登录测试服务器,ssh登录总是需要输入密码。登录的少还行,登录的多了,多一行命令都是多余的。

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

(1、必须使用 expect 命令执行2、你可以再包一层 使用bash解析去执行)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 关于CentOS 7下sqlite3找不到的问题解决

    关于CentOS 7下sqlite3找不到的问题解决

    这篇文章主要给大家介绍了关于CentOS 7下sqlite3找不到问题的解决方法,文中介绍的非常详细,对大家具有一定的参考学习价值,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-07-07
  • 用shell命令删除网站最新nb挂马的方法与代码

    用shell命令删除网站最新nb挂马的方法与代码

    教你删除网站最新NB挂马最近发现 很多网站被挂了木马,会在页面中生成如下代码。
    2010-02-02
  • 详解Linux 查看服务器开放的端口号

    详解Linux 查看服务器开放的端口号

    本篇文章主要介绍详解Linux 查看服务器开放的端口号,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • ssh远程无法访问linux的问题及解决

    ssh远程无法访问linux的问题及解决

    这篇文章主要介绍了ssh远程无法访问linux的问题及解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-04-04
  • 80端口被system占用导致Apache无法启动的解决方法

    80端口被system占用导致Apache无法启动的解决方法

    本文给大家介绍80端口被system占用导致Apache无法启动的解决方法,非常不错,一起看看吧
    2016-12-12
  • CentOS 7安装Mysql并设置开机自启动的方法

    CentOS 7安装Mysql并设置开机自启动的方法

    本篇文章主要介绍了CentOS 7安装Mysql并设置开机自启动的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-02-02
  • Apache中利用mod_rewrite实现防盗链

    Apache中利用mod_rewrite实现防盗链

    自从上次在博客中推荐《you are my everything》以后,服务器的流量突然多了起来,有几次甚至导致了VPS的当机。后来经过分析:盗链这个MP3的网页包括诸如QQ空间、校内网空间、更有甚者还放到了Taobao小店、个人博客也有不少,全部作为了背景音乐,并且导致各种爬虫疯狂抓取这个文件。找到了问题原因就只有一个办法了,就是利用Apache的mod_rewrite模块把盗链行为拒之门外。
    2008-04-04
  • Linux中如何查询运行文件的全路径的方法

    Linux中如何查询运行文件的全路径的方法

    这篇文章主要介绍了Linux中如何查询运行文件的全路径的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • linux系统命令笔记整理

    linux系统命令笔记整理

    这篇文章主要介绍了linux系统命令,整理总结了linux系统常用的安装、卸载、编辑器使用等相关操作命令与使用注意事项,需要的朋友可以参考下
    2020-03-03
  • Linux 在线安装软件 gcc在线安装的操作方法

    Linux 在线安装软件 gcc在线安装的操作方法

    今天小编就为大家分享一篇Linux 在线安装软件 gcc在线安装的操作方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论