linux实现SSH免密登录设置,以及shell脚本实现

简介: linux实现SSH免密登录设置,以及shell脚本实现

分享/朱季谦

最近在搭建linux集群,做了SSH免密登录的设置,正好把过程记录一下:

一.用搭建好的两台虚拟机做演示,A机器:192.168.200.129,B机器:192.168.200.128

二.分别在两台机器上执行以下步骤:

1.使用root登录A服务器:su – root

 

2.在登录的A服务器上通过指定加密算法指令ssh-keygen -t rsa来生成秘钥,执行完该指令一直回车即可。

说明:(1)ssh-keygen –t rsa是指定加密的算法是rsa

         (2)(/root/.ssh/id_rsa)是保存秘钥的路径

       (3)/root/.ssh/id_rsa.pub是生成的公钥

 

 

3.将公钥传到B服务器,以root用户登录B机器,回车后,当跳出yes/no的选项后,选择yes,然后输入B机器的密码,出现下面截图类型的信息,就证明设置成功了,这时可以通过ssh root@192.168.200.128测试下,正常情况下可免密登录到B机器上

A机器传给B机器的秘钥存放在/root/.ssh/目录下,进入到这个目录,可以看到:

 

完成以上步骤,就可以在A机器上免密码SSH登录B机器了,这时若要互相免密,可在B机器上把以上步骤重复一遍,但B机器ssh-copy-id root@ip的ip则是A机器的了。

以上步骤,可以通过shell脚本来自动化操作互免。

#!/bin/bashset-e  ssh-keygen() {
      yum -y install expect
      /usr/bin/expect <<-EOF
set timeout 60      spawn ssh-keygen
      expect {
"Enter file in which to save the key (/root/.ssh/id_rsa):" { send "\r"; exp_continue}
"Overwrite (y/n)?" { send "n\r" }
"Enter passphrase (empty for no passphrase):" { send "\r"; exp_continue} 
"Enter same passphrase again:" { send "\r"}
     }
     expect eof
     EOF
echo"" }
 ssh-copy(){
     /usr/bin/expect <<-EOF
set timeout -1     spawn ssh-copy-id $1     expect {
"*yes/no" { send "yes\r"; exp_continue }
"*password:" { send "$2\r" }
     }
     expect eof
     EOF
 }
 ssh-keygen
 ssh-copy "root@192.168.200.128"

 

目录
相关文章
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
831 3
Linux系统初始化脚本
|
8月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
770 9
|
8月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
779 2
|
10月前
|
Web App开发 缓存 安全
Linux一键清理系统垃圾:释放30GB空间的Shell脚本实战​
这篇博客介绍了一个实用的Linux系统盘清理脚本,主要功能包括: 安全权限检查和旧内核清理,保留当前使用内核 7天以上日志文件清理和系统日志压缩 浏览器缓存(Chrome/Firefox)、APT缓存、临时文件清理 智能清理Snap旧版本和Docker无用数据 提供磁盘空间使用前后对比和大文件查找功能 脚本采用交互式设计确保安全性,适合定期维护开发环境、服务器和个人电脑。文章详细解析了脚本的关键功能代码,并给出了使用建议。完整脚本已开源,用户可根据需求自定义调整清理策略。
1179 1
|
12月前
|
Java Linux
自定义linux脚本用于快速jar包启动、停止、重启
自定义linux脚本用于快速jar包启动、停止、重启
465 29
|
分布式计算 Hadoop 网络安全
|
安全 Shell Linux
为什么不能在SSH(Secure Shell)登录中设置ulimit值?
关闭这些选项会带来一些安全风险。但那也只是在SSH守护进程的漏洞被发现并且被利用的情况下才会出现。关闭之后就意味着sshd不会创建非特权子进程去处理进站连接。如果漏洞存在而且被利用,则有人可以控制sshd进程,而这个进程是以root身份运行的。
2137 0
|
网络安全 数据安全/隐私保护
SSH免登录设置
基础篇 执行: ssh-keygen -t rsa rocky@tiger:~$ ssh-keygen -t rsa Generating public/private rsa key pair.
846 0
|
安全 Shell Linux
为什么不能在SSH(Secure Shell)登录中设置ulimit值?
SuSE上的一些问题,可能需要另参考:http://blog.chinaunix.net/u2/64804/showart.php?id=2026903 相关版本:红帽企业Linux   现象:   如果你在文件/etc/security/limits.conf中设定了值。
969 0
|
7月前
|
Linux 网络安全 Docker
盘古栈云,创建带ssh服务的linux容器
创建带ssh服务的linux容器
437 146

热门文章

最新文章