第七十四讲——ssh服务 本文共有29369个字,关键词: telent :远程登录协议基于23/tcp C/S架构:S是server服务端,C是client客户端 ssh:secure.shell,应用层协议 22/tcp 通信过程以及认证过程是加密的,为主机认证,用户认证过程加密,数据的传输过程加密。 ssh v1 v2(version版本) ssh v1无法防范中间人攻击(man-in-middle) 认证的方式有两种,一是基于口令认证,二是基于密钥认证。 实际上协议只是一种规范,ssh便是以C/S架构的形式使用ssh协议规范建立会话。 在linux上使用的是openSSH C/S:服务器端sshd,配置文件位于/etc/ssh/sshd_confog 客户端为ssh,配置文件位于/etc/ssh/ssh_config。 openSSH命令: #ssh-keygen 密钥生成器 #ssh-copy-id 将公钥传输至远程服务器 #scp 远程复制,且复制过程加密,是一种跨主机的安全复制工具。 我们在使用ssh远程连接的时候,如果没有指定用户,则默认使用当前主机上当前已登录的主机作为登录的用户。 ssh远程连接的格式如下: #ssh USERNAME@HOST #ssh –l USERNAME HOST 我们如果只是想执行一条命令,还可以这么做 #ssh USERNAME@HOST ‘COMMAND’ 在登录远程主机成功时执行命令后退出。 #scp SRC(源) DEST(目标) SRC(源)可以是多个,但是DEST(目标)一定要是目录 #scp –r 递归复制,或者-a选项。 不论远程主机作为源还是作为目标,都要指定远程主机的属性: #scp USERNAM@HOST:/path/to/somewhere DEST(目标) #ssh-keygen 密钥生成器 #ssh-keygen -t rsarsa为加密方式,是一种常用的加密方式。 生成密钥之后,密钥保存在当前用户家目录下的.ssh目录下 ~/.ssh/id.rsa私钥 ~/.ssh/id-rsa.pub公钥 将生成的公钥复制到远程主机上对应用户的家目录下 ~/.ssh/authorized_keys文件中,或者~/.ssh/authorized_keys2文件中。 我们只能使用追加保存,因为需要登录到主机的用户不止我们一个。 #ssh-keygen生成密钥时会有输入密码的提示,这个密码是用于加密私钥的,这样一来以后每一次访问私钥都需要输入密码。 ~/.ssh目录的权限一定要是700 我们可以使用scp命令将公钥传输到远程主机,并将id_rsa.pub中的内容追加到远程主机~/.ssh/authorized.keys中。 cat id_rsa.pub >> ~/.ssh/authorized.keys如果.ssh目录不存在则需要创建 我们也可以使用ssh-copy-id实现上述步骤,但是并不是所有的主机都支持ssh-copy-id命令 #ssh-copy-id -i指定key的位置,一般来说在~/.ssh/id_rsa.pub shh-copy-id -i ~/.ssh/id_rsa.pub root@172.168.0.1 远程主机不需要指定公钥的位置 此过程只是单向的,本地主机使用私钥,远程主机使用公钥,如果是双向,则需要在两台主机上都写入对方公钥。 #ssh-keygen时也可以自行指定,不需要再交互窗口输入 -t 加密类型 rsa -f 文件的保存位置 -P(大写)密码的指定 #ssh-keygen –t rsa –f ~/.ssh/id_rsa.pub –P‘password’ ssh功能很强大,是很重量级的服务,因此并不适用于小系统,于是就有了专门为嵌入式系统打造的ssh。 dropbear:嵌入式系统专门的服务端和客户端工具 dropbear服务器端叫做dropbear 客户端叫做dbclient dropbearkey生成服务器端使用的key,主要用于服务器端实现主机认证的需要。 dropbear默认使用nsswitch实现名称的解析,因此,我们使用dropbear的时候也得将nsswitch一并安装。 nsswitch相关文件: /etc/nsswitch.conf /lib/libnss_files* /usr/lib/libnss3.so /usr/lib/libnss_files* 如果没有nsswitch,就无法完成名称的解析,也就无法实现将用户名转换成id dropbear会在用户登录时检查其默认shell是否为当前系统的安全shell,什么是安全shell?写入/etc/shells文件中的shell为安全shell,在这个文件中我么可以定义允许使用的shell。 我们得使用宿主机编译dropbear 首先我们得下载dropbear源码,并确认主机上的编译环境是否准备就绪。 #tar –xf dropbear* #cd dropbear目录 #./configure #make #make install 如果我们对编译指定的条件不了解,可以查看其帮助文档: #./configure --help |less 查看安装帮助文档 安装好文件之后进行移植,这里所谓的移植其实就是将程序copy到相应的目录,然后将程序依赖的库文件也一并复制到/lib/目录下。 我们还需要一个远程用户的伪终端。 在/etc/fstab中写入 devpts(名称) /dev/pts(挂载点) devpts(文件系统类型) mode=620(权限,还可以指定其他) 0 0 mkdir /dev/pts dropbearkey生成的密钥位于/etc/dropbear目录下 RSA:dropbear_rsa_host_key 长度可以指定,为8的整数倍 DSS:dropbear_dss_host_key长度固定,默认为1024 #dropbearkey -t 指定加密类型rsa/dss -f 指定文件的位置 -s 指定密钥的长度,SIZE(可以省略) 指定一个服务启动时使用-E、-F表示在前端运行。 「一键投喂 软糖/蛋糕/布丁/牛奶/冰阔乐!」 赞赏 × 几人行 (๑>ڡ<)☆谢谢老板~ 2元 5元 10元 50元 100元 任意金额 2元 使用微信扫描二维码完成支付 版权声明:本文为作者原创,如需转载须联系作者本人同意,未经作者本人同意不得擅自转载。 给自己讲linux 2017-02-12 评论 2400 次浏览