1.openssh

  1. 当主机中开启openssh服务,那么就开放了远程连接的借口

2.在客户端连接sshd的方式

  1. ssh 服务端用户@服务端ip地址 <br />![image.png](https://cdn.nlark.com/yuque/0/2021/png/10374550/1627464252440-6c30005c-c341-4c98-8e92-4465d91c9d75.png#clientId=ub04d53fb-0c53-4&from=paste&height=287&id=u227de791&margin=%5Bobject%20Object%5D&name=image.png&originHeight=365&originWidth=937&originalType=binary&ratio=1&size=143884&status=done&style=none&taskId=ufeab0b80-be1d-414e-b6aa-b284193f88a&width=736)<br />当主机第一次连接陌生主机时,会自动建立.ssh/know_hosts。<br /> 以上连接方式是不能打开远程主机的图形界面功能的如果需要打开远程主机图形界面功能需要输入 -X <br />例如:ssh -X root@主机ip

3.给ssh服务添加新的认证方式 key认证

生成锁和钥匙 ssh-kengen
image.png
加密ssh用户认证
在服务端 ssh-copy-id -i /root/.ssh/id_rsa.pub root@主机ip

验证密钥:
解密文件传输到客户端
image.png
删除服务端的密钥,再次验证
image.png
在服务端执行 cp /root/.ssh/id_rsa.pub /root/.ssh/authorized_keys命令,从新生成锁文件,解密文件功能恢复。

4.sshd的安全配置

vim /etc/ssh/sshd_config

  1. PasswordAuthentication no|yes 78行-开启或关闭ssh的默认认证方式
  2. PermitRootLogin no|yes 48行-开启或关闭root用户的登陆权限
  3. AllowUsers westos 用户白名单,当前设定是只允许westos登陆(安全性更高)
  4. DenyUsers linux 用户黑名单,当前设定是只不允许linux登陆

5. SCP免密传输

  1. 问题
    最近使用jenkins进行项目打包,因为代码服务器和应用服务器在两台不同的机器上,在代码服务器打包好之后要
    使用scp命令copy搭配用于服务器上,在jenkins中使用scp命令时,总是提示权限不足,如下图所示:

image.png

  1. 解决方法
    在网上通过搜索发现,要在jenkins配置代码服务器的public-key。过程如下:

2.1 复制jenkins服务器用户目录下的.ssh/id_rsa.pub中的内容
cat ~/.ssh/id_rsa.pub ==cat /root/.ssh/id_rsa.pub
image.png
2.2 将上面的内容copy到应用服务器的~/.ssh/authorized_keys,如果该文件中有多个public-key,重起一行进行粘贴
image.png
2.3 这个时候去构建,可能还是会提示权限不足,那是因为第一次的时候jenkins必须需要我们与应用服务器有过一次密码输入的scp操作,所以我们只需要在代码服务器中简单的执行一次与应用服务器的scp命令,并输入密码即可
原因:虽然我们已经配置了相许信任,但是第一次使用scp命令需要先自己手动在shell中端中执行一次才可以。那么我们使用scp随意复制个文件过去,输入密码。