备忘一下
安装wget和ssh
yum install wget
yum install openssh-server
生成key
ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
#这里注意,只需要生成rsa key就行了,dsa连通性测试会报错
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_ecdsa_key
#ssh-keygen -t dsa -f /etc/ssh/ssh_host_ed25519_key
注意,这里的key如果重新生成重启sshd,客户端连接时若报错
Add correct host key in /Users/czzou/.ssh/known_hosts to get rid of this message.
Offending RSA key in /Users/czzou/.ssh/known_hosts:22
RSA host key for [1.2.3.4]:36002 has changed and you have requested strict checking.
Host key verification failed.
那么在/Users/czzou/.ssh/known_hosts
文件中把对应这个ssh连接的缓存信息删除,即可重新连接。
启动ssh服务
/usr/sbin/sshd
修改密码
passwd 然后 123456 123456
一个不好排查的坑
docker run 启动容器,不带--privileged
选项时,会出现一个很难排查的现象,ssh连接建立连接成功的一瞬间,会直接关闭连接。
抓包发现连接建立完成后,客户端会给服务端发Fin包,断开连接。
感觉有点无从下手,找不到原因。
当然,有可能是前面ssh server给client发送的数据包里边有断开连接的指令。
从网上看了一些资料,没找到类似的案例,但是有提到可能是用户权限问题。
尝试重新启动容器,docker run -it --name ch --privileged -p 36002:22 centos:7 bash
,安装并启动sshd,问题解决。
ssh免密登录配置
客户端
~/.ssh目录下若已经存在有公钥(id_rsa.pub)、私钥文件(id_rsa),则可以跳过客户端配置步骤;
否则运行ssh-keygen
生成公私钥。
服务端
- 修改sshd服务配置
/etc/ssh/sshd_config
文件中,下面的选项如果有则解开注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
- 配置authorized_keys文件
若~/.ssh/authorized_keys
不存在,则创建此文件
将客户端的公钥(id_rsa.pub)内容拷贝到authorized_keys中
- 重启sshd
本文链接:https://www.zoucz.com/blog/2020/08/11/e4dc6560-dbc9-11ea-90b5-eb40e9720ed0/