docker安装好后,自己动手做个自己的docker镜像,首先需要从服务器pull下一个基础的镜像,这里用centos7
(最好是root用户下,我虚拟机中的docker普通用户运行docker提示服务没有运行,奇怪)
一、下载官方原始镜像
docker pull centos:7
稍等一会下载完成,使用
docker images
查看本地的镜像列表,如图,centos那个就是刚才下载的
接着用以下命令启动,使用image创建container并进入交互模式, login shell是/bin/bash
docker run -i -t centos:7 /bin/bash
接着终端就是容器中的centos的了,默认是root用户登录,接下来的操作都在容器中了
二、容器中安装passwd,openssl,openssh-server
yum install passwd openssl openssh-server -y
安装完成后
启动sshd:
这时报以下错误:
[[email protected] b3426410ff43 /]# /usr/sbin/sshd
Could not load host key: /etc/ssh/ssh_host_rsa_key
Could not load host key: /etc/ssh/ssh_host_ecdsa_key
Could not load host key: /etc/ssh/ssh_host_ed25519_key
执行以下命令解决:
然后,修改 /etc/ssh/sshd_config 配置信息:
UsePAM yes 改为 UsePAM no
UsePrivilegeSeparation sandbox 改为 UsePrivilegeSeparation no
可以用vi改,也可以用下面命令
修改完后,重新启动sshd
[[email protected] /]# /usr/sbin/sshd -D
然后修改root密码
passwd root
或者直接一句修改
接着需要把修改后的镜像保存了,首先输入exit退出容器,再使用下面命令查看刚运行过的,
docker commit将修改后镜像保存到本地,参数是ID,名字
下次可以输入刚保存的名字启动修改过安装了ssh服务的镜像了。
分享一个centos7安装ssh服务后的docker-compose.yml
密码及映射的端口可自行修改
一、目标
centos7下SSH服务安装和设置。
二、平台
centos7.6,
三、解析
在centos7中ssh服务默认是已经被安装了的。通过命令rpm -qa | grep openssh 查看是否安装了ssh服务

四、客户端免密ssh登录到服务器
1.安装ssh:yum install openssh 默认已经安装了,可忽略此步骤。
2.客户端生成key:[[email protected] ~]# ssh-keygen -t rsa一路回车即可,在root家目录就能生成一个隐藏文件夹.ssh
3.查看生成的秘钥文件:cd .ssh/,ls后可以看到有两个秘钥文件,一个是公钥一个是私钥

4.将客户端上生成的key拷贝(传)到服务器端:[[email protected] .ssh]# ssh-copy-id 10.100.100.210 这个Ip是目标服务器ip,然后按照提示输入yes回车,再输入目标服务器的root密码回车。

5.此时到服务器上的root家目录,cd ~后cd .ssh/ 这里面就有秘钥文件了。没在客户端做第四部的话,那么在服务器端是看不到传来的秘钥文件的。

6.客户端尝试用ssh连接服务器端
[[email protected] .ssh]# ssh 10.100.100.210 正常情况下应当啥也不输入,直接登录进去了。
7.ssh会在客户端上生成一个连接文件,可以 cd ~/.ssh/,并ls一下,发现又多出来一个known_hosts文件。

8.如果上面无法远程到服务器,请检查ssh配置文件,然后需要把一些东西去掉注释
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
=====================
9.接着上面的写,利用别名登录远程服务器(即ip地址不是平时记不住吗,可以给这个ssh的服务器ip取个别名),在root的家目录下的.ssh/文件夹下,创建一个config文件,文件内容如:
kahnServer是别名,它的地址是10.100.100.210,登录端口22,登录用户名root,秘钥文件是~/.ssh/id_rsa

五、更改ssh端口
大致说下注意的地方
1.首先得关闭selinux
[[email protected] ssh]# setenforce 0 临时关闭selinux
2.防火墙开放相应的新ssh端口号
[[email protected] ssh]# firewall-cmd --permanent --add-port=3721/tcp
3.更改ssh配置文件/etc/ssh/sshd_config ,将Port 22取消注释,再加一行Port 3721,

4.如果也想将别名通过非标端口连接ssh的,也需要修改~/.ssh/config文件中的端口地址。
5.注意重启防火墙生效
6.服务器端重启ssh服务:systemctl restart sshd
7.查看ssh服务的状态(里面能看到有新加的端口3721,若有问题会冒红):systemctl status sshd
8.客户端使用ssh命令连接到服务器,如: ssh -p 3721 10.100.100.210 或别名ssh kahnServer
2019年8月20日22:32:15
下shell下载方式 请参考:https://blog.csdn.net/weixin_40928253/article/details/80621724
xshell使用教程请参考:https://blog.csdn.net/Hanani_Jia/article/details/78732033
开启ssh服务需要root权限,先用root账户登陆
先检查有没有安装ssh服务:rpm -qa | grep ssh
如果没有安装ssh服务就安装 : yum install openssh-server
安装好后在ssh配置文件里进行配置 : vim /etc/ssh/sshd_config
用esc+:wq 保存退出
修改完后用 /bin/systemctl start sshd.service 开启ssh服务,这个命令没有回显
开启后用 ps -e | grep sshd 检查一下ssh服务是否开启
再用netstat -an | grep 22检查一下22端口是否开启
将ssh服务添加到自启动列表中:systemctl enable sshd.service
打开xshell6
Loading Comments...