美文网首页LINUX
设置ssh无密码登录linux服务器

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

作者: 秦时的明月夜 | 来源:发表于2019-08-19 14:20 被阅读0次

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

rsa认证登录方式

制作密钥对

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

ssh-keygen -t [rsa|dsa]
rsadsa代表不同的算法
例如:
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.pubauthorized_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解析去执行)

相关文章

  • SSH免密码登录设置

    在Hadoop等应用,通常要设置SSH免密码登录来管理集群。这里记录一下Linux配置免密码登录设置。 安装SSH...

  • Windows系统使用cmder ssh免密码登录linux服务

    Linux服务器每次登陆或者scp复制文件时都需要繁琐的输入密码过程,而使用SSH Key来实现SSH无密码登录不...

  • Linux设置SSH密钥以及别名无密码登录

    Linux设置SSH密钥以及别名无密码登录 首先生成使用密钥对 使用ssh-keygen生成密钥对 生成的文件默认...

  • Mac ssh 免密码登录 Mac 或者 Linux

    最近在 Mac上操作另一台 Mac 和 Linux 服务器,每次输密码太麻烦。所以直接设置 ssh 免密码登录,省...

  • Linux设置ssh无密码登录

    SSH简介 SSH是一个专为远程登录会话和其他网络服务提供安全性的协议。默认状态下SSH链接是需要密码认证的,可以...

  • 设置ssh无密码登录linux服务器

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

  • 使用 ssh-key 登录linux服务器

    参考了一下博客Linux配置使用SSH Key登录并禁用root密码登录linux生成ssh key方法与使用,无...

  • 设置ssh快捷命令

    经常要用ssh登录远程服务器,每次都输入用户名和密码比较麻烦。可以设置一下ssh免密码和ssh服务器别名。 ssh...

  • Linux一些小技巧

    设置SSH登录时间 配置man中文帮助文档 未完待续~~ 1 设置SSH登录时间 我们一般远程连接Linux服务器...

  • linux的几种基操

    Linux服务器连接另一个linux服务器 在服务器集群环境中,通过ssh免密码登录 ssh会产生私钥和公钥,对方...

网友评论

    本文标题:设置ssh无密码登录linux服务器

    本文链接:https://www.haomeiwen.com/subject/otussctx.html