时间:2021-05-19
每次登录测试服务器,ssh登录总是需要输入密码。登录的少还行,登录的多了,多一行命令都是多余的。
rsa认证登录方式
制作密钥对
在客户端(本地机器)终端下输入以下命令
ssh-keygen -t [rsa|dsa]
rsa和dsa代表不同的算法
例如:
一直回车就对了(不用设置密码)
将会生成密钥文件和私钥文件 id_rsa,id_rsa.pub(如果用dsa则生成id_dsa,id_dsa.pub)
生成位置在/root/.ssh/文件夹下(我用的是root用户所以在root下,生成过程会有提示文件位置)
.ssh 是隐藏文件夹 使用 ls -a查看
将公钥放到服务器指定位置
方法一、直接复制
1、将公钥复制到服务器的root用户下的.ssh文件夹(用哪个用户登录就复制到哪个用户下的.ssh文件夹下)
2、安装公钥
登录到服务器cd /root/.ssh/
方法二、使用ssh-copy-id命令复制(推荐)
一个命令直接就ok了
验证
不用输入密码则成功,否则失败
注意事项
上面操作测试过是没有问题的
linux的版本和使用的用户不同会有差别的。
如果出现问题可以考虑以下两点
1、id_rsa.pub和authorized_keys的文件权限问题
chmod 600 authorized_keyschmod 700 ~/.ssh2、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.shexpect命令免密登录方式
可能你觉得需要操作服务器系统不好,当然也可以只在本地操作。
使用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" interact2、添加expectssh.sh执行权限
chmod u+x expectssh.sh3、执行命令
expect expectssh.sh(1、必须使用 expect 命令执行2、你可以再包一层 使用bash解析去执行)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Linux系统系统如何使用私钥登录?Linux服务器每次都要输入负责的密码,为了方便、安全登录Linux服务器,使用私钥公钥来登录。生成ssh公钥密钥对:#ss
CentOS配置无密码登录配置sshd服务在服务器上修改/etc/ssh/sshd_config:#禁止root登录PermitRootLoginno#指定可以
ssh登录很慢解决方法使用ssh客户端(如:putty)连接Linux服务器,可能会等待10-30秒才有提示输入密码。严重影响工作效率。登录很慢,登录上去后速度
linux云服务器上怎么登录?linux系统是我们在购买云服务器时经常会用到的系统,下面我们介绍下从本地登录Linux云服务器的几种方法。远程密码登录1)下载远
linux系统主要用于服务器,作为运维人员,每天要不断的ssh登录服务器进行服务器管理,每次输入ssh的命令会很麻烦,deepin20的终端界面提供ssh远程管