Linux服务之ssh

SSH服务介绍:
(telnet是明文传输的 使用23端口   ssh是加密传输 使用22端口)
基于口令的安全认证:
基于口令的认证本质上还是'账户'+'密码'的认证,当输入了正确用户信息后,服务器端通过了认证才可以接受控制请求。
基于密钥的安全认证:
基于密钥的认证使用了公私钥来进行验证。首先服务器端和客户端都配置使用了公钥,而私钥仅由客户端保存。当客户端尝试连接服务器的时候,会首先将自己的公钥发送给服务器端,当服务器端对比客户端与自己所存储的公钥一致后,会向客户端发送检查信息,这个检查信息需要客户端使用私钥进行解密,继而应答服务器的消息进行确认验证。
SSH连接实现:
前置条件:首先必须要
在本博客中我使用的是Finalshell,因为其背景可以设置,相比其他两款软件无论是优化还是产品设计都更好一点,正常使用页面如下。具体的Finalshell使用方法详见官网。
现在我们来研究使用Kali-Linux两种方法如何连接上SSH有SSH连接的应用软件,市面上比较典型的有Xshell、Finalshell、Bitviseputty
1.Linux上登录ssh(linux本身自带ssh登录)
ssh root@[ip地址]
exit  //用于退出
Kali中设置ssh服务开机启动的是
update-rc.d ssh enable
关闭开机启动
update-rc.d ssh disabled
2.windows登录ssh可以借助工具实现,很方便:
①:基于口令认证的方式:
配置SSH(加密连接的服务) 可以使用bitvise连接
首先你要知道你要连接的机器的IP地址
Linux查看IP地址的命令是什么呢:
ip addr
ifconfig :
SSH的默认端口是22端口
首先进入root权限,使用vi修改/etc/ssh/sshd_config文件,(root用户才能修改这个sshd_config 或者也可以改文件权限)
代码: 
vi /etc/ssh/sshd_config
修改如下位置
#Port 22  (去掉#表示开启)
#PermitRootLogin no  (去掉# 同时no改成yes)
#PubkeyAuthentication no  (去掉# 同时no改成yes)
#PasswordAuthentication no  (去掉#且no改成yes)
#PermitRootLogin without-password (去掉#  修改成  PermitRootLogin yes)
保证GSSAPI都是#
#GSSAPI  options
#GSSAPIAuthentication no
#GSSAPICleanupCredentials yes
//一般版本不同 修改的部分也不相同 仅供参考
:wq   (保存后退出vi.)
然后在root权限下,启用SSH服务,命令如下
service ssh start
继而设置开机SSH作为守护进程自启动,命令如下:    
update-rc.d ssh enable
此时通过SSH设置相应的IP地址,输入用户名与密码即可SSH连接成功。 可以通过bitvise链接
systemctl restart ssh   /sshd    重启ssh(新版)(斜杠表示ssh或者sshd都可以)
/etc/init.d/ssh restart(旧版)
----------------------------------------------------------------------------------------
之后使用bitvise连接即可
PS:SSH连接的时候用户名必须全是小写。例如我linux的账户名是Queen 在连接的时候要输入queen才能连接成功
Ubuntu开启ssh服务
sudo apt-get update
sudo apt-get install openssh-server
sudo ps -e |grep ssh
sudo service ssh start
方法2 基于密钥登录
首先在root权限下,打开密钥登录的功能,编辑vi /etc/ssh/sshd_config    文件进行如下修改
1|#PubkeyAuthentication no
修改为
PubkeyAuthentication yes
2|PermitRootLogin without-password
修改为:
PermitRootLogin yes
3|#AuthorizedKeysFile .ssh/authorized_keys
去除前面的#注释符
然后设置密钥对,命令与选择如下,其中需要输入内容的地方可以直接按下Enter留空:
ssh-keygen -t rsa -b 4096 -m PEM
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
Created directory '/root/.ssh'.
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:
SHA256:nloGAzevmrE1XNIwzn37L1aQoreQe9ditfSynWYJURg root@kali
此时产生的公钥和私钥都存在/root/.ssh/目录下,接下来我们需要在服务器上安装公钥,命令如下
cd /root/.ssh/
cat id_rsa.pub >>authorized_keys
chmod 600 authorized_keys
chmod 700 ~/.ssh
然后将私钥id_rsa下载到客户端上
设置登录的连接方式是密钥登录,设置用户名为root,载入私钥并输入添加私钥时设置的密码,使用SSH登录连接,发现登录成功。注意这里因为生产的公钥账户是root,所以用户也必须是root.
最终发现SSH登录成功
小知识:ssh免密码登录的介绍
ssh-keygen   //生成到  /root/.ssh/id_rsa 如果不想改其他目录 确认键即可 默认位置
#passphrase  可以理解成证书密码
1.ssh-keygen是生成一个密钥对
生成完会有一个.ssh文件夹 内部有id_rsa  id_rsa.pub   known_hosts
其中(公钥加密 私钥解密)
id_rsa  是其RSA私钥
id_rsa.pub  是其公钥  公钥可以在互联网上随意传播
2.将公钥传输给其他目标主机
ssh-copy-id [目标主机]  //把公钥文件传输到远程主机 前提远程主机也开放了ssh服务
3.此时目标主机也会自动生成一个 /root/.ssh  (其中有一个authorized_keys)
文本内容是刚刚传输过来的公钥
4.此时可以仅输入证书密码就可以成功登录目标linux的ssh 而不需要输入其电脑的登录密码了
ssh [源主机的ip地址]
输入刚才公钥所对应的证书密码 正确以后就可以成功登录其ssh
高级操作:绕过源linux的密码去实现ssh登录
生成密钥对的时候不输入相应的证书密码,也就是保持为空
直接把没有密码保护的公钥传给目标计算机
目标计算机可以直接空证书密码 ssh连接到该源计算机 可以变相的理解成一种反向连接
绕过源linux的密码去实现ssh登录

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Simon_Smith

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值