首页 > 编程知识 正文

ssh使用详解,如何修改ssh配置文件

时间:2023-05-03 21:52:57 阅读:167828 作者:1172

准备:

window 10系统

7个centos7

连接方式介绍:

从客户端的角度看,SSH提供了两种级别的安全认证。

第一级(基于密码的安全认证)

只要知道自己的帐户和密码(密码),就可以登录到远程主机。 所有传输的数据都将被加密,但不能保证连接的服务器就是想要连接的服务器。 另一台服务器可能正在伪装成真正的服务器,以“中间人”的方式进行攻击。

第一次连接时,远程主机会询问客户端是否接受公钥,并将其存储在用户名目录中。 这一步骤可能受到“中间人”的攻击。

第二级(基于密钥的安全认证) )

你需要依靠钥匙。 这意味着您必须为自己创建一个密钥对,并将公钥放在需要访问的服务器上。 在连接到SSH服务器时,客户端软件会向服务器发送请求,请求使用加密密钥进行安全认证。 服务器收到请求后,首先在该服务器上你的主目录下找到你的公钥,并将其与你发送的公钥进行比较。 如果两个加密密钥匹配,则服务器用公钥加密“挑战”,然后将其发送到客户端软件。 客户端收到“挑战”后,可以用您的私钥解密并将其发送到服务器。

用这种方法,你必须知道自己加密密钥的密码。 但是,与第一个级别相比,第二个级别不需要在网络上发送密码。

第二个级别不仅加密所有传输的数据,而且“中间人”攻击方法也是不可能的。 (因为他没有你的私人钥匙)。 但是,整个登录过程可能很长。

一、SecureCRT 连centos7

1.口令登录

1 )输入帐户密码和端口号

2 )首次登录提示是否接受key (假设远程主机可信),接受后不再提示。 然后,按照提示输入密码(密码)即可登录。 受信任的key存储在用户的. ssh/known_hosts文件中

2.公钥登录

1 )在git或其他linux计算机(ssh-keygen命令)上创建私钥对,将公钥上传到linux,然后自己创建用户主页(~/.ssh/authorized_keys ).ssh (如果没有)

可以通过rz命令或直接拖动id_rsa.pub上载到~/.ssh/。 (请注意不要与现有的id_rsa.pub冲突。 )

# xxx表示上传的文件,重命名此文件以避免与对方的私钥冲突。 cat xxx authorized_keys

2 ) SecureCRT填写用户账号和端口号,导入私有文件,如下图。

二、两台cnetos7相连

1.口令(密码)登录

1 )输入以下命令

# -p 22指定端口。 默认情况下,不需要在22点指定。 这些只是显示了# root@192.168.1.13。 用户名@ipssh -p 22 root@192.168.1.13是您第一次登录。 远程主机将询问您是否接受key,键入yes,然后键入yes

2.通过公钥登录(推荐)

1 )使用ssh-keygen命令创建私钥对(有一些交互,但都回到车上就可以了),密钥对位于)~/.ssh/目录下

2 )将公钥添加到远程主机authorized_keys

方法1 )如果没有另一台机器的相应用户(~/.ssh/下上传).ssh,可以自己创建公钥。 您可以通过rsync或scp复制到远程主机,也可以通过sz rz下载到windows ),然后将其添加到authorized_keys

# xxx表示上传的文件,重命名此文件以避免与对方的私钥对发生冲突。 cat XXX授权密钥方法2 :通过密码方式直接远程执行添加操作

#这是ssh远程执行命令操作。 在此,将本机的id_rsa.pub的内容重定向添加到用户的root主目录~/.ssh/authorized_keys文件中。 #通过使远程主机的主目录中没有. ssh目录,可以在命令之前添加目录创建操作。 例如' mkdir-p.ssh cat.ssh/authorized _ keys ' ssh root @ 192.168.1.13 ' cat.ssh/authorized _ keys '~/.

密集免登录和ssh-copy-id命令分析_hanguofei的博客-CSDN博客_ssh-copy-id

3.简化登录(并不是一种独立登录方式,只是对前面两种登录操作做简化)

尽管是公钥登录,但每次登录时都必须输入用户名和ip域名。 侵略

显麻烦。可以通过主目录~/.ssh/config文件,配置自己容记得host名用于登录:

 或

 说明:

Host *  -- 下的字段配置在所有配置项中公用

IdentityFile -- 指定私密文件

host -- 自定义host name,用于ssh登录操作

HostName  -- ip或域名

User  -- 登录用户

简化后的指令(sys2 就是你自己为这项登录配置起的name):

三.ssh和sshd配置说明

1)用户主目录~/.ssh/

 id_rsa 和 id_rsa.pub: ssh-keygen生成的秘钥对,分别为秘钥和公钥

known_hosts : 口令方式登录时,所信任的远程主机key

authorized_keys : 其他主机登录本机的公钥,需要手动追加

2)sshd配置目录/etc/ssh/

ssh_config和sshd_config都是ssh服务器的配置文件,二者区别在于,前者是针对客户端的配置文件,后者则是针对服务端的配置文件。两个配置文件都允许你通过设置不同的选项来改变客户端程序的运行方式

可在sshd_config设置是否开启口令登录,以及远程主机公钥集文件等:

PasswordAuthentication yes

AuthorizedKeysFile      .ssh/authorized_keys

四、ssh远程执行命令

1)到远程主机执行命令并且结果在本端输入:ssh user@host "df -h"
2)执行远程主机脚本并把结果传给result变量(最好绝对路径):result=`ssh user@host ~/command.sh`
3)到远程主机执行命令并把结果追加到本机当前目录log文件:ssh user@host "pwd" >> ./log

==>详细参考请看最后文献

注意:

1.客户端通过用户名登录等操作,服务端相关配置要在对应目录的主目录下(~/.ssh/),不同用户主目录是不同的(玩linux都懂的,顺便提下);

2.如果运行完命令不会自动退出,需要重定向到/dev/null,如ssh user@host "/data/deploy/work/deploy.sh > /dev/null < /dev/null 2>&1" ;

参考文献:

ssh 远程执行命令_赶路人儿-CSDN博客_ssh 远程执行命令

ssh配置文件详解_weixin_34122604的博客-CSDN博客

SSH协议详解_梦想专栏-CSDN博客_ssh协议

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。