• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    设置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解析去执行)

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

    上一篇:Linux账号文件控制管理步骤详解
    下一篇:使用nginx正向代理实现内网域名转发过程解析
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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