+++++++++OpenSSH应用

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了+++++++++OpenSSH应用相关的知识,希望对你有一定的参考价值。

SSH协议的实现: telnet, dropbear,openssh


telnet使用

1、相关程序
telnet.i686                   客户端         
telnet-server.i686            服务端

2、安装服务端
# yum -y -q install telnet-server

3、启动telnet服务
# chkconfig telnet on
# service xinetd start

4、查看是否监听
# ss -tunlp | fgrep 23

5、创建普通用户
# useradd centos
# echo "123" | passwd --stdin centos

6、在Windows主机上访问(xshell中)
[c:\~]$ telnet
NAME
	telnet - connects to a host using the TELNET protocol.

SYNOPSYS
	telnet [[email protected]]host [port]
	
[c:\~]$ telnet [email protected]       //登陆CentOS用户


Connecting to 172.16.100.3:23...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.
CentOS release 6.9 (Final)
Kernel 2.6.32-696.el6.i686 on an i686
localhost.localdomain login: centos
Password: 
[[email protected] ~]$ echo $HOME
/home/centos

7、查看在登陆过程抓包的内容 
...

dropbear使用

1、安装开发包组
# yum -y groupinstall "Development Tools" "Server Platform Development"

2、获取源码  
dropbear-2017.75.tar.bz2 

3、展开
# tar xf dropbear-2017.75.tar.bz2

4、查看文件
# less INSTALL
./configure      (optionally with --disable-zlib or --disable-syslog,
                  or --help for other options)

Now compile:

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp"

And install (/usr/local/bin is usual default):

make PROGRAMS="dropbear dbclient dropbearkey dropbearconvert scp" install

5、编译
# ./configure

configure: error: *** zlib missing - install first or check config.log ***
# yum install zlib-devel

# make PROGRAMS="dropbear dbclient dropbearkey scp"
# make PROGRAMS="dropbear dbclient dropbearkey scp" install

6、生成主机密钥
# install -d /etc/dropbear
# dropbearkey -t rsa -f /etc/dropbear/dropbear_rsa_host_key -s 2048 
# dropbearkey -t dss -f /etc/dropbear/dropbear_dss_host_key -s 1024

7、启动服务
# dropbear -F -E -p 0.0.0.0:8888
tcp   LISTEN     0      128                                                                            *:8888                                                                          *:*      users:(("dropbear",4365,3))

8、测试连接
[c:\~]$ ssh [email protected] 8888


Connecting to 172.16.100.3:8888...
Connection established.
To escape to local shell, press ‘Ctrl+Alt+]‘.
LISTEN     0      128                       *:8888                     *:*     
ESTAB      0      64             172.16.100.3:8888            172.16.0.1:55483
1、启动:
# dropbear -p 0.0.0.0:8888 
2、连接
# dbclient -p 8888 [email protected]
服务脚本dropbear
[[email protected] ~]# vim dropbear
#!/bin/bash
# Version
# Author
# chkconfig: - 33 77
# description: my toys

port=9999
sysconfdir="/etc/dropbear"
Rsa_key="/etc/dropbear/dropbear_rsa_host_key"
Dss_key="/etc/dropbear/dropbear_dss_host_key"
##++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
[ -r /etc/dropbear.conf ] && . /etc/dropbear.conf
prog=$(echo $0 | sed ‘s,/$,,‘ | sed -r ‘[email protected](.*/)([^/])@\[email protected]‘)
lockfile=/var/lock/subsys/$prog

[ $UID -ne 0 ] && exit 1

dropbearKey() {
  [ -d $sysconfdir ] || install -d $sysconfdir
  [ -e $Rsa_key ] || dropbearkey -t rsa -f $Rsa_key  -s 2048 &> /dev/null 
  [ -e $Dss_key ] || dropbearkey -t dss -f $Dss_key  -s 1024 &> /dev/null
  [ $? -eq 0 ] && echo "dropbearkey generate finished...."
}

start() {
  if [ -e $lockfile ]; then
    echo "$prog is already running"
  else
    dropbearKey
    $prog -p :$port
    touch $lockfile
    echo "Start $prog finished..."
  fi
}

stop() {
  if [ -e $lockfile ]; then
    rm -rf $lockfile
    rm -rf $sysconfdir
    killall -15 $prog || pkill -9 $prog
    echo "Stop $prog ok..."
  else
    echo "$prog is stopped yet"
  fi
}

status() {
  if [ -e $lockfile ]; then
    echo "$prog is running..."
  else
    echo "$prog is stopped..."
  fi
}

restart() {
  stop
  start
}

reload() {
  if [ -e $lockfile ]; then
    kill -2 $pid
  else
    echo "$prog is stopped yet"
  fi
} 
    
case $1 in
start) 
  start
  ;;
stop)
  stop
  ;;
status)
  status
  ;;
restart)
  restart
  ;;
reload)
  reload
  ;;
*)
  echo "Usage: $prog {start|stop|restart|status|reload}"
esac

放入
# chmod +x dropbear
# cp -p dropbear /etc/rc.d/init.d/
# chkconfig --add dropbear
# chkconfig --list dropbear
# chkconfig --levels 3 dropbear on

OpenSSH密钥认证流程

技术分享

技术分享


ssh协议

技术分享


OpenSSH相关的工具

# rpm -qi openssh-clients  An open source SSH client applications
# rpm -qi openssh-server   An open source SSH server daemon

[[email protected] ~]# rpm -ql openssh-clients
/etc/ssh/ssh_config
/usr/bin/scp         //基于ssh协议的复制工具
/usr/bin/sftp        //基于ssh协议的ftp工具
/usr/bin/ssh         //基于ssh协议的Linux客户端命令
/usr/bin/ssh-copy-id
/usr/bin/ssh-keyscan

[[email protected] ~]# rpm -ql openssh-server
/etc/ssh/sshd_config
/usr/sbin/.sshd.hmac
/usr/sbin/sshd

Windows客户端:
xshell(XFTP), putty(XFTP), securecrt, sshsecureshellclient


openssh-clients相关配置


配置文件

/etc/ssh/ssh_config
Host *      //Host PATTERN即表示连接Host的范围
Port 22     //默认连接端口
ForwardX11 no  //默认X11协议关闭,要使用远端的图形程序必须要开启,ssh -X即可


ssh命令 以ssh连接远程主机

技术分享


scp命令 跨主机的复制,sshd服务启动才可使用

技术分享 



sftp命令  安全的ftp工作,sshd服务启动才可使用

技术分享

技术分享



Openssh-server相关的配置


配置文件 /etc/ssh/sshd_config

登陆认证

技术分享

必须确定 

技术分享

必须修改

技术分享

安全相关的选项

技术分享

限制可登陆用户

技术分享


基于密钥认证登陆openssh-server

生成一对密钥,公钥放在服务器端的对应用户账号的对应家目录下的.ssh目录中authorized_keys文件

# openssl genrsa -out scretkey 768
# openssl rsa -in scretkey -out pubkey -pubout
# cat pubkey >> ~/.ssh/authorized_keys 

不能登陆....
# ssh-keygen -f ~/.ssh/id_rsa -P ‘‘ -t rsa -b 768
# # cat .ssh/id_rsa.pub >> .ssh/authorized_keys

登陆成功....


本文出自 “Reading” 博客,请务必保留此出处http://sonlich.blog.51cto.com/12825953/1967397

以上是关于+++++++++OpenSSH应用的主要内容,如果未能解决你的问题,请参考以下文章

openssh的应用

+++++++++OpenSSH应用

OpenSSH服务及其相关应用

openssh服务器端和客户端的配置及应用

如何使用 Swift 使用此代码片段为 iOS 应用程序初始化 SDK?

Openssh到IOS邮件