菜鸟学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