sshd以及key认证

1.sshd简介
sshd= secure shell
可以通过网络在主机中开机shell的服务

客户端软件
sshd

连接方式:
ssh username@ip 文本模式的链接
ssh -X username@ip 可以在链接成功后开机图形
#server(172.25.254.161) 为服务端 连接172.25.254.160的用户端
在这里插入图片描述
注意:
第一次链接陌生主机是要建立认证文件
所以会询问是否建立,需要树入yes
在次链接此台主机时,因为已经生成~/.ssh/know_hosts文件所以不需要再次输入yes

远程复制:
scp file root@ip:dir 上传
scp root@ip:file dir 下载
#
#下载/root/Desktop/shuang 到当前桌面在这里插入图片描述
#上传 xie到172.25.254.160桌面上在这里插入图片描述
#
!
#将用户172.25.254.160 切换到无图标模式(init3)效果如下
在这里插入图片描述
#将用户172.25.254.160 切换到有图标模式(init 5)
在这里插入图片描述

2.sshd 的key认证

1.生成认证KEY
ssh-keygen ##生成密钥的命令
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa):
##指定保存加密字符的文件(使用默认)
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”. ##公钥(锁)

在这里插入图片描述
#私钥 cat /root/.ssh/id_rsa
在这里插入图片描述
#公钥 cat /root/.ssh/id_rsa.pub
在这里插入图片描述

2.加密服务
[root@server .ssh]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@172.25.254.161 ##加密sshd服务
The authenticity of host ‘172.25.254.161 (172.25.254.161)’ can’t be established.
ECDSA key fingerprint is eb:24:0e:07:96:26:b1:04:c2:37:0c:78:2d:bc:b0:08.
Are you sure you want to continue connecting (yes/no)? yes
/usr/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/usr/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed – if you are prompted now it is to install the new keys
root@172.25.254.161’s password:

Number of key(s) added: 1

Now try logging into the machine, with: “ssh ‘root@172.25.254.161’”
and check to make sure that only the key(s) you wanted were added.

[root@server .ssh]# ls
authorized_keys id_rsa id_rsa.pub known_hosts
^
此文件出现表示加密完成
#自定义不用输入空格
在这里插入图片描述
#修改文件服务端加密权限 使用服务端连接不上用户端在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
删除用户端172.25.254.161中的钥匙,则服务端172.25.254.160链接被拒在这里插入图片描述
!

3.分发钥匙
scp /root/.ssh/id_rsa root@172.25.254.160:/root/.ssh/
在这里插入图片描述
##连接时发现直接登陆不需要root登陆系统的密码认证

在这里插入图片描述

4.sshd的安全设定
文件:vim /etc/ssh/sshd_config

5.添加sshd登陆登陆信息
vim /etc/motd 文件内容就是登陆后显示的信息(此文件在用户端写入),等待服务端链接后内容直接出现在服务端桌面上
如:在用户端172.25.254.160 ***vim /etc/motd***上写入 欢迎您的到来
服务端172.25.254.161链接成功会自动出现“欢迎您的到来”字样

在这里插入图片描述

Apache Mina-sshd服务端如果没有设置hostkey,会自动生成一个hostkey,如果设置了hostkey,会优先使用设置的hostkey,而不是自动生成的hostkey。因此,如果你自己生成了hostkey并将其用作Apache Mina-sshd服务端的hostkey,服务端不会对其进行重写。 以下是一个使用自己生成的hostkey的示例代码: ```java import java.io.File; import java.io.IOException; import java.security.NoSuchAlgorithmException; import java.security.spec.InvalidKeySpecException; import org.apache.sshd.common.config.keys.AuthorizedKeyEntry; import org.apache.sshd.common.config.keys.PublicKeyEntry; import org.apache.sshd.server.SshServer; import org.apache.sshd.server.auth.pubkey.PublickeyAuthenticator; import org.apache.sshd.server.auth.pubkey.SimplePublicKeyAuthenticator; import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider; public class SSHServer { public static void main(String[] args) throws NoSuchAlgorithmException, InvalidKeySpecException, IOException { // Load the hostkey from a file File hostKeyFile = new File("hostkeyfile"); SimpleGeneratorHostKeyProvider hostKeyProvider = new SimpleGeneratorHostKeyProvider(hostKeyFile); // Create the SSH server SshServer sshd = SshServer.setUpDefaultServer(); sshd.setPort(22); sshd.setKeyPairProvider(hostKeyProvider); // Configure public key authentication PublickeyAuthenticator publicKeyAuthenticator = new SimplePublicKeyAuthenticator(); PublicKeyEntry publicKeyEntry = new AuthorizedKeyEntry("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDq1Oy25jyN3x3uTDVQZC1Oq8MlK8+3+6kqCQs+4j6aGqAq5nbCwVJlbD5zKbJN1yJFJX8kVzXo4yPhS6Y/7I6sE4mFQvT5XgqD1Wl1QeN8L4q5Pv9aJsLd9FmXjCdsfZnJh3aT4s6XnLQ6YFQWvI4QaQdjC3QpE+8XKoO/RiU4jH3S8yS1XG2QJrBbG2Yx7RzUZm5O5F2RJjZQw5L6rWVJo4nL3a6zG1zVhl8Kv3LxWpqtMKzB0S+c8LwSv7q2a5W1yPznJy4eOYQXb9yYrTm8pQJ5qk5S5TjIHX5y5QG2Z43v/2xFyQHqy7CHYKlR8K9K2mTm7QgE8O0t1a24VQW1xQZ8QrjK+qJIViFzUx8P"); publicKeyAuthenticator.addAuthorizedKey(publicKeyEntry); sshd.setPublickeyAuthenticator(publicKeyAuthenticator); // Start the SSH server sshd.start(); System.out.println("SSH server is running"); } } ``` 该程序将从名为hostkeyfile的文件中加载hostkey,并将其用作Apache Mina-sshd服务端的hostkey。在配置公钥认证时,将使用一个硬编码的公钥作为示例。你应该将其替换为你自己的公钥。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值