ssh连接远程主机免密登入
核心思想:
1.本地主机生成公钥私钥,私钥自己存着,公钥传到远程主机.ssh文件夹下authorized_keys文件(默认是这个,用追加的方式)
2.本地连接远程主机,公私钥对上就可以免密登入了.
3.authorized_keys的权限要是600。
步骤
主机:
1.生成公钥和私钥文件id_rsa和id_rsa.pub (敲三下回车即可)。
- [root@bogon ~]# ssh-keygen -t rsa
- Generating public/private rsa key pair.
- Enter file in which to save the key (/root/.ssh/id_rsa):
- Enter passphrase (empty for no passphrase):
- Enter same passphrase again:
- Your identification has been saved in /root/.ssh/id_rsa.
- Your public key has been saved in /root/.ssh/id_rsa.pub.
- The key fingerprint is:
- 67:da:0d:79:e0:d6:2b:cd:7d:22:af:51:7e:9c:75:fe root@bogon
- The key's randomart image is:
- +--[ RSA 2048]----+
- | |
- | |
- | . |
- | . + |
- | S B o . o|
- | * * = o+|
- | . o B +.=|
- | . + +.|
- | ... E|
- +-----------------+
2.远程主机上创建~/.ssh目录,权限为700,把~/.ssh/id_rsa.pub从本地追加到远程主机上的~/.ssh/authorized_keys
authorized_keys的权限要是600
ssh 登录一段时间后断开的解决方案
方法1 和2 就够用了
Method 1:
修改 / etc/ssh/sshd_config 配置文件,设置 ClientAliveCountMax 值大一点,单位是分钟。然后重启 ssh 服务使生效:service sshd reload
Method 2:
找到所在用户的. ssh 目录, 如 root 用户该目录在:/root/.ssh/
在该目录创建 config 文件 vi /root/.ssh/config
加入下面一句:ServerAliveInterval 60
保存退出,重新开启 root 用户的 shell,则再 ssh 远程服务器的时候,不会因为长时间操作断开。应该是加入这句之后,ssh 客户端会每隔一段时间自动与 ssh 服务器通信一次,所以长时间操作不会断开。
Method 3:
修改 / etc/profile 配置文件
# vi /etc/profile
增加:TMOUT=1800
这样 30 分钟没操作就自动 LOGOUT
Method 4:
利用 expect 模拟键盘动作,在闲置时间之内模拟地给个键盘响应, 将下列代码保存为 xxx,然后用 expect 执行
#!/usr/bin/expect
set timeout 60
spawn ssh user@host
interact {
timeout 300 {send "\x20"}
}
expect xxx
接着按提示输入密码就可以了,这样每隔 300 秒就会自动打一个空格 (\x20),具体的时间间隔可以根据具体情况设置。
Method 5:
Windows 下 ssh 工具的设置:
secureCRT:选项 --- 终端 --- 反空闲 中设置每隔多少秒发送一个字符串,或者是 NO-OP 协议包
putty:putty -> Connection -> Seconds between keepalives (0 to turn off), 默认为 0, 改为 300.
ssh连接远程主机免密登入的更多相关文章
- ssh 免密码登入
1.普通免密码登入 (1) 生成秘钥 [root@vick ~]# ssh-keygen -t rsa Generating public/private rsa key pair. Enter f ...
- ssh免密码登入
通常做许多事情(git puh/脚本等等),不停输入密码是件很不愉快的事情,破解如下: http://www.linuxproblem.org/art_9.html 1. 生成rsa密钥 ssh-ke ...
- linux ssh远程免密码登入
首先登入一台linux服务器,此台做为母机(即登入其他linux系统用这台做为入口):执行一行命令生成key文件:ssh-keygen -t rsa 2 在母机上,进入/roo/.ssh目录,找到id ...
- ssh安全优化免密登陆
ssh协议 为什么使用ssh协议? 在进行传输时,会对数据进行加密,保证会话安全:telnet协议不是加密传输,在传输过程中如果被抓包,就会造成信息泄露,telnet默认不支持root远程. # 常用 ...
- 使用ssh连接远程主机
在linux系统中,ssh是远程登录的默认工具,因为该工具的协议使用了RSA/DSA的加密算法.该工具做linux系统的远程管理是非常安全的. ssh登录远程主机(服务器)一般有两种方式:无密钥方式 ...
- linux 安装ssh以及ssh用法与免密登录
想要免费登录就是把本地机器的id_rsa_pub的内容放到远程服务器的authorized_keys里面 一.配置yum和hosts文件 配置hosts文件: 命令:vi /etc/hosts 在文件 ...
- ssh公私钥免密登陆
简介ssh Secure Shell(简写SSH) 为一项建立在应用层和传输层基础上的安全协议,专门为远程登录会话和其他网络服务提供安全性的协议. SSH安全机制分为两种,一种是基于口令的安全认证,一 ...
- ssh 主机之间免密配置脚本
文章目录 单向免密 `expect` 免交互 `sshpass` 免交互 相互免密 单向免密 expect 免交互 注意修改脚本内的 your_password 为 远程主机用户的密码 脚本内的 &q ...
- 如何通过linux ssh远程linux不用输入密码登入
如何通过一台linux ssh远程其他linux服务器时,不要输入密码,可以自动登入.提高远程效率,不用记忆各台服务器的密码. 工具/原料 ssh,ssh-keygen,scp 方法/步骤 首 ...
随机推荐
- 形态学及其他集合运算(Morphological and Other Set Operations)
摘 要:本实验主要实现形态学图像处理.主要验证图像集合的交并补运算.膨胀和腐蚀处理并利用图像集合的运算,实现形态学边界抽取算法并进行特征边界抽取.同时将膨胀和腐蚀扩展至灰度图像,编写函数实现灰度 ...
- selenium - switch_to_alert() - 警告框处理
在WebDriver中处理JavaScript所生成的alert.confirm以及prompt十分简单,具体做法是使用 switch_to.alert 方法定位到 alert/confirm/pro ...
- Tests for normality正态分布检验
欢迎关注博主主页,学习python视频资源,还有大量免费python经典文章 sklearn实战-乳腺癌细胞数据挖掘(博主亲自录制视频教程) https://study.163.com/course/ ...
- Drools规则引擎环境搭建
Drools 是一款基于Java 的开源规则引擎,所以在使用Drools 之前需要在开发机器上安装好JDK 环境,Drools5 要求的JDK 版本要在1.5 或以上. Drools5 提供了一个基于 ...
- 数据分析与展示---anaconda的使用
一:安装 官方源:https://repo.continuum.io/archive/(太慢) 清华源:https://mirrors.tuna.tsinghua.edu.cn/anaconda/ar ...
- HDU 1402 FFT 大数乘法
$A * B$ FFT模板题,找到了一个看起来很清爽的模板 /** @Date : 2017-09-19 22:12:08 * @FileName: HDU 1402 FFT 大整数乘法.cpp * ...
- C# 实现java中 wiat/notify机制
最近在学习java,看到wiat/notify机制实现线程通信,由于平时工作用的C#,赶紧用C#方式实现一个demo. Java 代码: import java.util.ArrayList; imp ...
- 【译】Linux提权基础
英文原文: Basic Linux Privilege Escalation 在开始之前,我想指出 - 我不是专家. 据我所知,在这个巨大的领域没有一个“魔法”的答案. 这只是我的发现,写出来,共享而 ...
- NYOJ 221 Tree (二叉树)
题目链接 描述 Little Valentine liked playing with binary trees very much. Her favorite game was constructi ...
- 从python入门ruby
1.Ruby的函数可以不使用括号 def h(name) puts "hello #{name}" end h "jack" 2.python可以直接访问实例的 ...