菜鸟学Linux 第039篇笔记 ssh dropbear
telnet: 远程登录协议 23/tcp
C/S 架构
S telenet server
C telenet client
ssh Secure SHell 应用层协议, 22/tcp
通信过程及认证过程都是加密的,可以实现主机认证
主机密钥, 非对称加密 secret key
public key
会话密钥交换 对称密钥
用户认证过程加密
数据传输过程加密
ssh v1
man-in-middle
ssh v2
认证过程
基于口令认证
基于密钥认证
协议:规范
实现: 服务器端、客户端
Linux: OpenSSH
C/S
服务器端 sshd 配置文件/etc/ssh/ssh_config
客户端 ssh 配置文件/etc/ssh/ssh_config
ssh-keygen 密钥生成器
ssh-copy-id 将公钥传输至远程服务器
scp 跨主机的安全复制工具
ssh command
ssh USERNAME@IP 连接远程主机
初次建立会在家目录下生成.ssh文件,用来保存主机认证密钥
ssh -l USER_NAME IP 连接远程主机
ssh USERNAME@IP 'COMMAND' 发送给远程主机命令,并传回到客户端结果
scp
scp SRC DEST
-r
-a
e.g. scp USER_NAME@IP:/path/somefile /path/local
scp /local/path USER_NAME@IP:/path/
ssh-keygen -t rsa 生成密钥,使登录远程主机不再需要输入密码
-t rsa
~/.ssh/id_rsa
~/.ssh/id_rsa.pub
-f /path/file
-P '' 指定加密私钥的密码
公钥追加到远程主机某用户的家目录下的.ssh/authorized_keys文件
或.ssh/authorized_keys2文件
1.先复制本地的id_rsa.pub到远程主机的家目录
2.创建目录.ssh
如果远程主机家目录下没有.ssh文件夹可以手动创建,注意要把权限改为700
追加内容 cat id_rsa.pub >> .ssh/authorized_keys
建议追加,因为有可能该文件里还有其它用户的key
第二种复制密钥到远程主机
ssh-copy-id -i .ssh/id_rsa.pub USER_NAME@IP
小系统安装ssh功能
dropbear 嵌入式系统专用的ssh服务器端和客户端
https://matt.ucc.asn.au/
服务器端 dropbear
密钥生成器 dropbearkey
客户端 dbclient
dropbear默认使用nsswitch 实现名称解析
/etc/nsswitch.conf
/lib/libnss-files*
/usr/lib/libnss3.so
/usr/lib/libnss_files*
dropbear会在用户登录时检查其默认shell是否当前系统的安全shell
/etc/shell
主机密钥默认位置
/etc/dropbear/
RSA: dropbear_rsa_host_key
长度可变,只要是8的整数位,默认为1024
DSS: dropbear_dss_host_key
长度固定,默认为1024
密钥生成器 dropbearkey
-t rsa|dss
-f /path/to/KEY_FILE
-s SIZE
1.从网站下载其源代码
解压 tar xf dropbear-2013.56.tar.bz2
cd dropbear-2013.56
./configure
make
make install
2. 运行之前所做copy lib的脚本
输入
dropbear
dropbearkey
dbclient
3. vim /etc/shells 添加如下 (注意这个是小系统的etc目录别弄错了)
/bin/sh
/bin/bash
/bin/ash
/bin/hush
vim /etc/fstab
devpts /dev/pts devpts mode=620 0 0
mkdir /dev/pts
4. 生成key
dropbearkey -t rsa -f etc/dropbear/dropbear_rsa_host_key -s 2048
dropbearkey -t dss -f etc/dropbear/dropbear_dss_host_key
注意目录都是小系统的根目录
5. mkdir /usr/lib (未做)
cp -d /lib/libnss_files* /lib/
cp -d /usr/lib/libnss3.so /usr/lib/libnss_files.so /usr/lib/
6. cp /etc/nsswitch.conf etc/
vim etc/nsswitch.conf 只保留此四行
passwd: files
shadow: files
group: files
hosts: files dns