ssh的简介与常用用法

ssh的简介与常用用法,第1张

ssh 为 secure shell 的英文缩写,是一种加密的网络传输协议。常用于登录远程服务器与在远程服务器上执行命令。

SSH 使用客户端-服务器模型,标准端口为 22。服务器端需要开启 SSH 守护进程接受远端的连接,而用户需要使用 SSH 客户端与服务端连接。

最常见的开源实现是 OpenSSH

登录:

在远程机器上执行 command,把 stdout,stderr 送回来然后断开连接:

常用参数:

scp 是一个命令行工具,是英文 secure copy 的缩写,用于在服务器和客户端之间传输文件, *** 作类似cp。

使用注意点:远程主机名后要加个冒号再跟路径。如:

SSH 以非对称加密实现身份验证。身份验证有多种途径,可以使用密码来认证,也可以通过实现配置好的密钥文件来认证。

通过密钥认证登录的条件:

我们通常使用 ssh-keygen 这个工具来生成公钥和私钥,如下:

这会生成两个文件 ~/.ssh/id_rsa 和 ~/.ssh/id_rsa.pub ,前者是私钥,我们应该小心保护,后者是公钥,应当将其放到服务端的 ~/.ssh/authorized_keys 中去,我们可以使用 ssh-copy-id 这个工具来完成:

或者手动将其复制粘贴过去。

也可以使用如下命令:

跳板机,又常叫做“Bastion host”。

在企业中,业务服务器通常有 ip 限制,不允许直接从办公机登录,而是需要先登录一个跳板机,通过跳板机来登录业务服务器。

这样做的目的是:隔离内部网络,只允许从跳板机访问,那么我们只需要特别关注跳板机的安全配置就可以了,便于更好的进行安全控制。

我们可以配置 ssh 客户端,让 ssh 替我们处理跳板机的登录,避免多次输入命令的负担。

假设我们有跳板机 jumpserver 和 目标服务器 targetserver。

方法一、使用命令行的 -J 参数

方法二、配置文件: ~/.ssh/config

然后就可以直接:

sshd 的配置文件: /etc/ssh/sshd_config 。

我们可以修改 sshd 的默认配置来增强系统的安全性,以下是一些需要注意的配置项:

web.xml是服务器软件必须要有的, 任何服务器软件(tomcat jboss等),启动的时候首先加载web.xml文件, 按照文件里面配置的监听器,过滤器, servlet, 第三方框架等来加载相应的配置, SSH框架中一般需要配置的就是spring的配置文件(application-context.xml), struts2的配置文件(struts.xml), struts1的配置文件(struts-config.xml), 整合后Hibernate.cfg.xml就不需要了, 因为hibernate.cfg.xml里面配置的是数据库的连接信息和映射文件信息, 在整合后这些信息是放在spring的配置文件中的.

web.xml是tomcat和jboss等按照加载顺序来加载各种配置文件的入口,

简单来说,ssh是一种 网络协议 ,用于计算机之间的加密登录。如果一个用户从本地计算机,使用ssh协议登录另一台远程计算机,我们就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

SSH 之所以安全是采用了公钥加密的方式,通过客户自己签发公钥加密用户密码,再通过主机持有的私钥解密;不像 HTTPS 协议存在证书管理中心CA用于验证公钥的合法性,因此,存在被中间人劫持的风险,即劫持登录请求发送篡改的公钥来截获用户登录密码,俗称”中间人攻击“;

不过 SSH 存在一套自有的验证方式:口令验证及密钥验证,可有效避免大部分的攻击;

使用上述命令测试连接性及验证流程;

通过 ssh-keygen 工具生成本地公钥文件,常用命令如下:

在 $HOME/.ssh/ 目录下,会新生成两个文件: id_rsa.pub 和 id_rsa 。 id_rsa.pub 是公钥, id_rsa 是私钥,其中 id_rsa 为默认文件名称,若如上图指定了文件路径及名称,则按照指定路径及文件名生成;

说明:若 ssh 登录使用密钥验证方式登录,则需要输入私钥的密码(生成密钥时指定的密码),若使用 ssh-agent 代理,则在同一个 session 会话下,只需要输入一次私钥密码即可,由 ssh-agent 帮我们代理,避免每次登录都需要输入私密码;

若登录时未开启,可手动开启 ssh-agent ,可通过如下命令:

添加生成的 SSH key 到 ssh-agent :

查看添加的 SSH key :

若需要免密登录,则需要将用户的 public key 文件内存追加复制到登录主机的 authorized_keys 配置文件中(默认路径为 ~/.ssh/authorized_keys ),或者直接通过 ssh-copy-id 工具完成,具体如下:

使用上述命令后即可实现 免密登录

ssh 配置包括系统级别的(针对客户端的默认为 /etc/ssh/ssh_config ,针对服务端的``/etc/ssh/sshd_config )及用户级别的配置文件(默认为 ~/.ssh/config`);且配置文件存在优先级,低优先级的配置项可视作默认值;而高优先级的配置项则会覆盖默认值。按优先级,有如下排序:

/etc/ssh/config 配置文件选项如下:

/etc/ssh/sshd_config 配置文件选项如下:

常用的选项如下:

ssh -T [email protected] 验证连接性,成功如下:

ssh配置文件详解

git-ssh 配置和使用

ssh-keygen - Generate a New SSH Key

最佳搭档:利用 SSH 及其配置文件节省你的生命


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/11737275.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-18
下一篇 2023-05-18

发表评论

登录后才能评论

评论列表(0条)

保存