当前位置:首页 » 操作系统 » linux自动ssh

linux自动ssh

发布时间: 2023-01-11 01:46:23

A. 【linux】SSH 使用密码/公钥远程登录总结

本文是笔者查阅网上资料做的总结,关于SSH原理,什么是对称加密和非对称加密,本文不过多介绍。这里介绍一下SHH的工作过程、配制方法,可能出现的问题及解决方法。
说明:本文中涉及的例子,SSH客户端为:本地主机A,SSH服务器为:服务器B

SSH协议采用C-S(客户端-服务器端)架构进行双方的身份验证以及数据的加密。
服务器端组件监听指定的端口,负责安全连接的建立、对连接方的身份认证、以及为通过身份认证的用户建立正确的环境。
客户端负责发起最初的TCP握手、安全连接的建立、验证服务器的身份与之前记录中的一致、并将自己的验证信息提供给服务器。
一个SSH会话的建立过程分为两个阶段。第一阶段,双方沟通并同意建立一个加密连接通道以供后续信息传输用。第二阶段,对请求接入的用户进行身份验证以确定服务器端是否要给该用户开放访问权限。

当客户端发起TCP连接时,服务器端返回信息说明自己支持的协议版本,如果客户端上支持的协议与之匹配,则连接继续。服务器会提供自己的公共主机密钥(public host key)以让客户端确认自己访问的是正确的机器。

然后,双方采用一种Diffie-Hellman算法共同为该会话建立密钥。每一方的一部分私有数据,加上来自对方的一部分公共数据,通过这种算法计算,能够得出完全相同的密钥用于本次会话。

整个会话的通讯内容都使用该密钥进行加密。这个阶段使用的公钥/私钥对与用户验证身份用的SSH密钥是完全无关的。

经典Diffie-Hellman算法的计算步骤如下:

这个共享密钥的加密方式被称为二进制数据包协议(binary packet protocol)。该过程能够让双方平等的参与密钥生成的过程,而不是由单方掌握。这种共享密钥生成的过程是安全的,双方没有交换过任何未经加密的信息。

生成的密钥是对称式密钥,一方用于加密信息的密钥等同于另一方用于解密信息的密钥,而任何第三方由于不持有该密钥,是无法解密双方传递的内容的。

会话加密通道建立后,SSH开始进入用户认证阶段。

下一步,服务器验证用户身份以决定是否准许其访问。验证有不同的方式,选择的验证方式取决于服务器的支持。

最简单的验证是密码验证:服务器要求客户端输入密码,客户端输入的密码经过上述的通道加密传输给服务器。

虽然密码是加密过的,然而该方法仍然不被推荐,因为用户经常为了省事而使用过于简单的密码,而这类密码很容易就能够被自动化脚本破解。

最流行的验证方式是SSH密钥对,这也是当前最推荐的方式。SSH密钥对是非对称密钥,私钥和公钥分别用于不同的功能。

公钥用于加密,而私钥用于解密。公钥可以随意上传、共享,因为公钥的流通并不会危及到私钥的保密性。

SSH密钥对的验证过程起始于上一部分加密通道建立之后,其具体执行步骤如下:

简单来说,服务器端用公钥加密信息,客户端用私钥解密信息以证明自己持有私钥。该过程同时使用了对称加密和非对称加密,两种方式各有自己的功用。

命令如下:

用户名:为要登录的服务器B中已存在的用户账户名
IP地址:为服务器B的IP地址
-p 端口号:用来指定端口号,默认为22

第一次登录时,会提示如下提示:

大概意思是说,你正在访问的主机不能验证它的真实性,它的RSA key(当前访问主机的公钥)指纹是怎样的,你确定要继续连接吗?
输入yes继续,会提示,已永久把当前访问主机的RSA key添加到了已知主机文件(用户目录下,.ssh 文件夹中的knwon_hosts文件)中。之后再次 SSH 登录就不再有该提示了。
接着,输入登录账户的密码即可。

SSH 密码登录,需要服务器开启密码验证权限,编辑服务器SSH配置命令如下:

在 sshd_config 文件中,Protocol 2 下面 #PasswordAuthentication yes,将前面的#号去掉,保存退出。

公钥登录,即免密码登录。避免的每次登录都要输入的麻烦,也防止了中间人攻击。是SSH远程登录最常用的登录方式。

提示输入密钥对名称,直接回车,使用默认名称即可;
提示输入密码(使用私钥时,要输入密码),直接回车,不使用密码即可。

首先,登录服务器B,在进行下面的操作。

找到 #PubkeyAuthentication yes,删除 #号,保存退出。

重启 ssh 服务

也可指定验证私钥:

本地主机A,生成密钥对后:

sudo vim /etc/selinux/config

B. linux下怎么使SSH服务开机自动运行

如果你用的是redhat的linux,图形界面里,找到system→administration→server settings→services,有个sshd的服务,打上勾就可以了。
命令行的话,用chkconfig --add sshd 然后重启下机器就可以了

C. linux的ssh怎么设置的

配置客户端的软件OpenSSH 有三种配置方式:命令行参数、用户配置文件和系统级的配置文件("/etc/ssh/ssh_config")。命令行参数优先于配置文件,用户配置文件优先于系统配置文件。所有的命令行的参数都能在配置文件中设置。因为在安装的时候没有默认的用户配置文件,所以要把 "/etc/ssh/ssh_config"拷贝并重新命名为"~/.ssh/config"。标准的配置文件大概是这样的:[lots of explanations and possible options listed]# Be paranoid by defaultHost *ForwardAgent noForwardX11 noFallBackToRsh no还有很多选项的设置可以用"man ssh"查看"CONFIGURATION FILES"这一章。配置文件是按顺序读取的。先设置的选项先生效。假定你在 www.foobar.com上有一个名为"bilbo"的帐号。而且你要把"ssh-agent"和"ssh-add"结合起来使用并且使用数据压缩来加快传输速度。因为主机名太长了,你懒得输入这么长的名字,用"fbc"作为" www.foobar.com"的简称。你的配置文件可以是这样的:Host *fbcHostName www.foobar.comUser bilboForwardAgent yesCompression yes# Be paranoid by defaultHost *ForwardAgent noForwardX11 noFallBackToRsh no你输入"ssh fbc"之后,SSH会自动地从配置文件中找到主机的全名,用你的用户名登录并且用"ssh-agent"管理的密匙进行安全验证。这样很方便吧!用SSH连接到其它远程计算机用的还是"paranoid(偏执)"默认设置。如果有些选项没有在配置文件或命令行中设置,那么还是使用默认的"paranoid"设置。在我们上面举的那个例子中,对于到 www.foobar.com的SSH连接:"ForwardAgent"和"Compression"被设置为 "Yes";其它的设置选项(如果没有用命令行参数)"ForwardX11"和"FallBackToRsh"都被设置成"No"。其它还有一些需要仔细看一看的设置选项是:l CheckHostIP yes这个选项用来进行IP地址的检查以防止DNS欺骗。l CompressionLevel压缩的级别从"1"(最快)到"9"(压缩率最高)。默认值为"6"。l ForwardX11 yes为了在本地运行远程的X程序必须设置这个选项。l LogLevel DEBUG当SSH出现问题的时候,这选项就很有用了。默认值为"INFO"。配置服务端的软件SSH服务器的配置使用的是"/etc/ssh/sshd_config"配置文件,这些选项的设置在配置文件中已经有了一些说明而且用"man sshd"也可以查看帮助。请注意OpenSSH对于SSH 1.x和2.x没有不同的配置文件。在默认的设置选项中需要注意的有:l PermitRootLogin yes最好把这个选项设置成"PermitRootLogin without-password",这样"root"用户就不能从没有密匙的计算机上登录。把这个选项设置成"no"将禁止"root"用户登录,只能用"su"命令从普通用户转成"root"。l X11Forwarding no把这个选项设置成"yes"允许用户运行远程主机上的X程序。就算禁止这个选项也不能提高服务器的安全因为用户可以安装他们自己的转发器(forwarder),请参看"man sshd"。l PasswordAuthentication yes把这个选项设置为"no"只允许用户用基于密匙的方式登录。这当然会给那些经常需要从不同主机登录的用户带来麻烦,但是这能够在很大程度上提高系统的安全性。基于口令的登录方式有很大的弱点。l # Subsystem /usr/local/sbin/sftpd把最前面的#号去掉并且把路径名设置成"/usr/bin/sftpserv",用户就能使用"sftp"(安全的FTP)了(sftpserv在 sftp 软件包中)。因为很多用户对FTP比较熟悉而且"scp"用起来也有一些麻烦,所以"sftp"还是很有用的。而且2.0.7版本以后的图形化的ftp工具"gftp"也支持"sftp"。

D. linux怎么写脚本让自动登录SSH或者telnet

使用expecte脚本可以实现此命令;网络以下expecte的写法;

E. 解决Linux SSH连接容易断开的问题

基于安全的考虑,如果用户连接到SSH Server后闲置一段时间,SSH Server会在超过特定时间后自动终止SSH连接。

若希望保持SSH长时间连接,可以做以下修改:
1、编辑ssh配置文件(注意不是“ssh_config")
# vim /etc/ssh/sshd_config

加入以下参数保存:

2、重启sshd生效:
systemctl restart sshd

实践环境:阿里云 CentOS 8.3

F. Linux系统启用SSH该如何操作

/etc/init.d/sshd start 手动启动。

主要还是看你的发行版。你没有说,所以没办法详细的回答。

shhd 需要确定安装上了。
之后你要是让开机自动运行,需要找服务管理程序,设置这个服务自动运行就行了。

G. linux 怎么开机自动启动ssh

如果你说的是sshd service的话
可以用chkconfig设置
chkconfig sshd on

H. 如何配置使linux启动后ssh服务自动启动

如果你用的是redhat的linux,图形界面里,找到system→administration→server settings→services,有个sshd的服务,打上勾就可以了。 命令行的话,用chkconfig --add sshd 然后重启下机器就可以了

I. linux下怎么使SSH服务开机自动运行

1、启动Linux并登录到系统。

J. Linux如何开机启动启动ssh服务

1、通过ntsysv 自启动ssh服务
在终端中输入setup回车运行ntsysv,选中"system serivce",回车进入后,定位到sshd服务,空格键选中,TAB键选择”OK“后依次退出,如下图所示:

热点内容
linux下php编译安装 发布:2025-05-15 08:30:37 浏览:591
c语言八进制十六进制 发布:2025-05-15 08:22:17 浏览:282
华为安卓如何更新鸿蒙 发布:2025-05-15 08:18:52 浏览:373
工商密码器是什么 发布:2025-05-15 08:18:50 浏览:751
c语言自考 发布:2025-05-15 07:52:42 浏览:501
压缩的玉 发布:2025-05-15 07:51:22 浏览:790
android的控件 发布:2025-05-15 07:50:36 浏览:553
南岗法院服务器ip地址 发布:2025-05-15 07:46:02 浏览:288
实况如何退出账号安卓 发布:2025-05-15 07:45:56 浏览:919
深入编译器 发布:2025-05-15 07:41:35 浏览:879