SSH协议

 ssh协议全称为secure shell,是由OpenSSH软件包所提供。作用是让系统可以通过不安全的网络在安全和加密的通道中通信,也就是创建与远程系统的安全连接,能够远程操作系统。

远程登录系统:

ssh 用户名@主机名
ssh -i 私钥文件 用户名@主机名

其中登录用户必须在远程主机上存在,并且你要知晓该用户口令或者密码。当然你如果只是进行简单操作,可以不登录主机,在上述命令后加上想要执行的命令即可。

如果你想查看当前登录系统的用户列表,可以使用:

w

它将显示具体信息,包括登录位置,时间等重要信息。 

 

原理 

SSH通过公钥加密的方式保持通信安全。当一个客户端连接到服务器时,服务器会在客户端登录之前发送公钥副本。

当用户使用ssh连接服务器时,它会首先在本地主机上查看是否具有该服务器的公钥副本,如果存在则会进行比对,如果不对就会根据用户选择以及配置确定是否登录。如果登录将会更新本地公钥。

你可以使用ssh-keygen命令来生成自己的公钥和私钥,它们会默认保存在家目录下的.sshd/id_rsa与.sshd/id_rsa。pub文件中。当然你也可以在命令后加-f选项来选择想保存的目录。

然后将你的公钥发送到要远程连接的服务器上,使用如下命令:

ssh-copy-id 用户名@主机名
ssh-copy-id -i 公钥文件 用户名@主机名

之后 你远程登录时,服务器会发送使用你的公钥加密的质询消息,你用自己的私钥解密来作出回应,来确认客户端的身份。这无疑比使用密码的方式更加安全。

同时为了更加安全,你可以使用密钥管理器来管理自己的密钥:

1.启动密钥管理器:

eval $(ssh-agent)

2.添加私钥 

ssh-add 
ssh-add 自定义私钥文件

之后你只需要输入密钥管理器的密码即可自动读取私钥。 

 

常见配置操作 

1.禁止root用户远程登录

/etc/ssh/sshd_config文件中将PermitRootLogin参数改为no,yes是允许其以root用户登录,prohibit-password或者without-password是root只能通过密钥来验证。

设置完后必须重新加载sshd服务才能完成更改:

systemctl reload sshd

2. 禁止使用密码登录,只能通过私钥

同样在/etc/ssh/sshd_config文件中将PasswordAuthentication参数改为no,并重新加载sshd服务即可。


 

 

  • 13
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值