tag 标签: ssh

相关帖子
相关博文
  • 热度 3
    2023-5-31 15:16
    1198 次阅读|
    0 个评论
    B y Toradex 秦海 1). 简介 嵌入式 Linux 由于运行平台通常资源受限同时对稳定性要求高,因此需要比较精简,那么针对 SSH 服务器 / 客户端应用,通常也不使用庞大的 OpenSSH ,而是采用十分精简的 Dropbear SSH 工具。 Dropbear 是一个基于 MIT License 的开源软件,其一些基本信息可以参考如下软件发布页面: https://matt.ucc.asn.au/dropbear/dropbear.html 本文所演示的平台来自于 Toradex Apalis iMX8 嵌入式平台,基于 NXP iMX8 系列 ARM 处理器,核心为 Cortex-A5 2 /A 53 。 2 ) . 硬件 准备 a ). Apalis iMX8 ARM 核心版配合 Apalis Eva Board 载板,并连接调试串口 和网口以便测试。 3). 具体配置说明 a). Apalis iMX8 模块标准 Ycoto Linux BSP 中已经包含 Dropbear 相关软件,不过由于默认配置为了开发测试方便,默认使能了 debug-tweaks 功能(比如这样可以允许 root 账户无密码登录),这样如下面 Ycoto Project/Openembedded 相关文件说明也就同时也使能了 weak ciphers ./ layers/meta-toradex-demos/recipes-core/dropbear/dropbear_%.bbappend --------------------------------------- # THE Eclipse RSE system explorer uses a ssh client which cannot cope with the # dropbear ssh server if weak ciphers are disabled. # If debug-tweaks is set in IMAGE_FEATURES then enable also weak ciphers. # With debug-tweaks we allow password less root access, enforcing strong # ciphers is pointless anyway. PACKAGECONFIG = "${@bb.utils.contains("IMAGE_FEATURES", "debug-tweaks", "", "disable-weak-ciphers",d)}" --------------------------------------- b). 为了使 Dropbear SSH 安全性更高,可以在 Ycoto 编译环境 下参考如下 patch 文件修改关闭 debug-tweaks 和 weak ciphers 。因为同时这样也关闭了 root 用户无密码登录,因此也需要给 root 用户配置默认密码。 ./ local.conf 文件修改 patch --------------------------------------- --- a/build/conf/local.conf 2023-05-30 12:16:33.780891419 +0800 +++ b/build/conf/local.conf 2023-05-31 10:55:36.841801362 +0800 @@ -277,3 +277,9 @@ include conf/machine/include/${MACHINE}.inc # DO NOT SET THE MACHINE AFTER THE ABOVE INCLUDE +# accept the Freescale EULA +ACCEPT_FSL_EULA = "1" +# add root password +EXTRA_IMAGE_FEATURES = "allow-root-login package-management" +INHERIT += "extrausers" +EXTRA_USERS_PARAMS = "usermod -P Abcd1234 root" --------------------------------------- ./ 参考 这里 的说明将上述修改下重新编译生成的 Ycoto Linux Image 通过 Toradex Easy Installer 更新到 Apalis iMX8 模块,此时测试无论本地串口登录还是远程 SSH 登录 root 用户都需要输入预设的密码了,增强了安全性。 c). 为了进一步提高 SSH 安全性,可以创建普通 user 用户用于远程登录,而禁止 root 用户 SSH 远程登录。这样也可以通过限制 user 用户的权限来提高系统安全性。 ./ 创建新的 user 用户 --------------------------------------- root@apalis-imx8-07308034:~# useradd testuser root@apalis-imx8-07308034:~# passwd testuser New password: Retype new password: passwd: password updated successfully --------------------------------------- ./ 禁止 root 用户 SSH 登录,参考如下 patch 修改 /etc/default/dropbear 文件 --------------------------------------- --- a /etc/default/dropbear +++ b /etc/default/dropbear @@ -1,2 +1,2 @@ # Disallow root logins by default -DROPBEAR_EXTRA_ARGS="" +DROPBEAR_EXTRA_ARGS=" -w" --------------------------------------- ./ 测试使用 testuser 用户远程 SSH 登录成功, root 用户登录失效 --------------------------------------- ### root login ### $ ssh root@10.20.1.168 root@10.20.1.168's password: Permission denied, please try again. ### testuser login ### $ ssh testuser@10.20.1.168 testuser@10.20.1.168's password: mkdir: cannot create directory '/run/user/1000': Permission denied chmod: cannot access '/run/user/1000': No such file or directory apalis-imx8-07308034:~$ --------------------------------------- ./ 另外,如果需要本地串口 testuser 或者 root 用户自动登录,可以参考如下 patch 修改 --------------------------------------- --- a/lib/systemd/system/serial-getty@.service +++ b/lib/systemd/system/serial-getty@.service @@ -30,7 +30,7 @@ Environment="TERM=xterm" -ExecStart=-/sbin/agetty -8 -L %I 115200 $TERM +ExecStart=-/sbin/agetty -8 -a testuser -L %I 115200 $TERM Type=idle Restart=always UtmpIdentifier=%I --------------------------------------- d). 远程 SSH 除了默认的密码登录方式外,还可以开启安全等级更高的通过 public key 来无密码登录 ./ 在需要远程登录 Apalis iMX8 设备的 PC 主机环境下通过 ssh-keygen 工具生成 SSH private key/public key pair --------------------------------------- ### generate 4096-bits key pair ### $ ssh-keygen -b 4096 Generating public/private rsa key pair. Enter file in which to save the key (/home/simon/.ssh/id_rsa): /home/simon/local/tmp/ssh-test/id_rsa Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/simon/local/tmp/ssh-test/id_rsa. Your public key has been saved in /home/simon/local/tmp/ssh-test/id_rsa.pub. The key fingerprint is: SHA256:Pr5PQjzRuPMVS3Rrkdtq+7pDVOFMGumBLpFGkjGSEs0 simon@simon-Latitude-5300 The key's randomart image is: +--- ----+ | .+..++.. o.++.| | . E..o* o +Bo.| | . + + +.+* | | . + o =o .| | S . o. . | | o + . + | | + o o . | | . + o | | oo. o=.| +---- -----+ --------------------------------------- ./ 通过 SSH 远程命令将生成的 public key 写入到 Apalis iMX8 dropbear authorized_keys 文件 --------------------------------------- ### create ssh folder on apalis iMX8 device ### apalis-imx8-07308034:~$ mkdir /home/testuser/.ssh ### add public key to apalis iMX8 authorized_keys file from Host PC remotely ### $ ssh testuser@10.20.1.168 "tee -a /home/testuser/.ssh/authorized_keys" < /home/simon/local/tmp/ssh-test/id_rsa.pub --------------------------------------- ./ 参考如下 patch 修改 Apalis iMX8 dropbear 启动配置来使 public key 验证生效 --------------------------------------- --- a/lib/systemd/system/dropbear@.service +++ b/lib/systemd/system/dropbear@.service @@ -4,9 +4,9 @@ After=syslog.target dropbearkey.service -Environment="DROPBEAR_RSAKEY_DIR=/etc/dropbear" +Environment="DROPBEAR_RSAKEY_DIR=/home/testuser/.ssh/" EnvironmentFile=-/etc/default/dropbear -ExecStart=-/usr/sbin/dropbear -i -r ${DROPBEAR_RSAKEY_DIR}/dropbear_rsa_host_key $DROPBEAR _EXTRA_ARGS +ExecStart=-/usr/sbin/dropbear -i $DROPBEAR_EXTRA_ARGS ExecReload=/bin/kill -HUP $MAINPID StandardInput=socket KillMode=process --------------------------------------- ./ 重启 Apalis iMX8 使配置生效后,再次尝试远程 SSH 登录,可以实现无需密码而是采用 public key 验证登录 --------------------------------------- $ ssh -i /home/simon/local/tmp/ssh-test/id_rsa testuser@10.20.1.168 mkdir: cannot create directory '/run/user/1000': Permission denied chmod: cannot access '/run/user/1000': No such file or directory apalis-imx8-07308034:~$ --------------------------------------- e). 更多关于 dropbear 工具命令参数说明可以参考如下 https://manpages.ubuntu.com/manpages/bionic/man8/dropbear.8.html 4 ). 总结 本文 基于嵌入式 Linux 简单演示了 轻量化 SSH 工具软件 Dropbear 的增强安全性配置供参考。
  • 热度 2
    2020-11-13 09:11
    2171 次阅读|
    1 个评论
    好长时间没更新了,最近也是瞎忙,老板催的紧,这可能是打工者的常态。郁闷很长时间,加上疫情影响,差点放弃人生了,只能积极调整心态,努力做一些事情来分散注意力了。 找了一块树莓派3B,价格不贵,但是含金量十足。为什么不选3B+和4呢,因为只有3B支持Android Thing,但是我还没用到,暴露了本质,只是喜欢收集而已。 板子拿到手,组装好外壳,配上鼠标键盘,还正好有个HDMI的小屏,完美。上电开机,输入一些常规指令,看看温度,37度,看看核心电压1.275V。恩恩,好久没用shell了,总算有点程序员的感觉。 但是高兴没多久,用Putty远程登录的时候,死活登不上去,郁闷了。找了一堆方法,挨个试一遍。先ping网卡,没问题;再ping网关,没问题;再ping外网百度,也没问题,哭了。没道理啊,都能上外网,树莓派能上网,PC也能上网,他俩就是不通,关机睡觉。 第二天,开机,居然通了,没道理啊,不管了,先运行再说,用用vim,配置插件,编译HelloRaspberry.c,控制灯亮........ 第三天,又不通了,这是为什么。又查是不是路由器的事,当年听同事忽悠,办了国内最大通信公司的光纤入户,安装光纤的哥们非要让我买个智能路由器。好吧,不买的话估计我家的光纤三天两头出问题,防止这个问题的出现,我一口答应将近300元的智能路由器。看里面也没有多大问题,什么ping的设置也正常,也没有其他隔离的选项,就是不通。 第四天,Yestoday Once More 。。。。。。。。 第N天,还是看看路由器设置吧,偶然看到运行时间5天多,没重启。难道是这个原因,用大招,网管秘籍——重启。一会时间,再用Putty登录,完美;远程桌面登录,完美。 其实最后也没搞清楚原因是什么,数据阻塞?最好的解释。路由器bug?不可能!有个锅在不停的飞。
  • 热度 21
    2016-5-20 14:41
    1069 次阅读|
    0 个评论
    在使用telnet之前,先回顾一下SSH和FTP: SSH是SecureShell协议,FTP是FileTransfer协议。 -------------------------------- 如何在Fedora22下使用SSH? 1. 准备两台安装有Fedora22的主机A和B; 2. 安装openssh: # dnf install openssh-server # dnf install openssh ******** Tips: 有关systemd 早期的红帽系,其Linux服务是通过很多启动脚本来管理的,这种方式也称为SysV。它非常容易使用,并且便于扩展。service命令用来启动一个System V init脚本,这些脚本存放在/etc/init.d下。 如果我们在此目录下增加一个可执行脚本: # touch /etc/init.d/maria # chmod +x maria 那么运行service命令时,就会发现它可被启动: $ service m maria       mcelog      mdmonitor   multipathd systemd是Linux的系统与服务管理器,它替代了SysV的大部分功能。 如果我们要启动systemd的服务,就使用systemctl命令。 ps:实际上当使用了systemctl命令之后,service命令也会相应的生成。 ******** 3. 启动服务: # systemctl start sshd.service # systemctl status sshd.service ● sshd.service - OpenSSH server daemon    Loaded: loaded (/usr/lib/systemd/system/sshd.service; disabled; vendor preset: disabled)    Active: active (running) since Fri 2016-05-20 12:38:44 CST; 40min ago 4. 观察服务是否启动: # netstat -lpnut Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1484/dnsmasq tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      22959/sshd tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2200/cupsd tcp6       0      0 :::22                   :::*                    LISTEN      22959/sshd tcp6       0      0 ::1:631                 :::*                    LISTEN      2200/cupsd 5. 使用A主机连接B主机: $ ssh maria@192.168.1.107 The authenticity of host '192.168.1.107 (192.168.1.107)' can't be established. ECDSA key fingerprint is SHA256:08Rq2SKHf2CvZBn6sjLzSeJczoSlDXbhaac46Id59QQ. ECDSA key fingerprint is MD5:c2:cd:49:7e:56:43:15:30:b8:fa:69:a5:9b:ad:bd:38. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '192.168.1.107' (ECDSA) to the list of known hosts. maria@192.168.1.107's password: Last login: Fri May 20 05:26:54 2016 $ -------------------------------- 如何在Fedora22下使用FTP? 1. 安装ftp: # dnf install vsftpd # dnf install ftp 2. 启动ftp服务: # systemctl start vsftpd.service # systemctl status vsftpd.service ● vsftpd.service - Vsftpd ftp daemon    Loaded: loaded (/usr/lib/systemd/system/vsftpd.service; disabled; vendor preset: disabled)    Active: active (running) since Fri 2016-05-20 13:34:56 CST; 5s ago 3. 观察服务是否启动: # netstat -lpnut Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 192.168.122.1:53        0.0.0.0:*               LISTEN      1484/dnsmasq tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      22959/sshd tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      2200/cupsd tcp6       0      0 :::21                   :::*                    LISTEN      26875/vsftpd 4. 安装Firewall(iptables的图形版),在图形界面中打开ftp服务: # dnf install firewall-config # firewall-config 5. 使用A主机连接B主机: $ ftp 192.168.1.107 Connected to 192.168.1.107 (192.168.1.107). 220 (vsFTPd 3.0.2) Name (192.168.1.107:maria): maria 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp -------------------------------- Telnet是传输控制协议/因特网协议(TCP/IP)网络(例如Internet)的登录和仿真程序。它最初是由ARPANET开发的,但是现在它主要用于Internet会话。它的基本功能是,允许用户登录进入远程主机系统。 如何在Fedora22下使用telnet? 1. 安装telnet和telnet-server # dnf install telnet # dnf install telnet-server 2. 打开telnet服务: # systemctl start telnet.socket # systemctl status telnet.socket ● telnet.socket - Telnet Server Activation Socket    Loaded: loaded (/usr/lib/systemd/system/telnet.socket; disabled; vendor preset: disabled)    Active: active (listening) since Fri 2016-05-20 14:28:58 CST; 25s ago 3. 安装Firewall(iptables的图形版),在图形界面中打开ftp服务: # dnf install firewall-config # firewall-config 4. 使用A主机登陆B主机: $ telnet 192.168.1.107 Trying 192.168.1.107... Connected to 192.168.1.107. Escape character is '^]'. Fedora release 22 (Twenty Two) Kernel 4.0.4-301.fc22.x86_64 on an x86_64 (3) localhost login: maria Password: Last login: Fri May 20 13:22:31 from 192.168.1.104 $ ls Desktop  Documents  Downloads  Music  Pictures  Public  Templates  Videos $   telnet的用法和ssh差不多啦~ 现在可以使用telnet来远程操作主机了。
  • 热度 13
    2014-6-16 19:48
    1446 次阅读|
    0 个评论
    用Fedora+ssh+Firefox翻墙,要是停止刷新一段时间,ssh服务器就会自动断开连接,再翻就只能重新登录了。所以不让ssh掉线的方法也很简单,保持刷新就好了。 有一个简单的小方法是:用Firefox登录网页版QQ,它会每隔几分钟读一次消息,就算整天都不刷网页,也不用担心掉线啦!
  • 热度 21
    2013-7-31 17:03
    2328 次阅读|
    3 个评论
      昨天pcDuino到手,怀着欣喜和激动,开始了pcDuino之旅,在这之前着实准备了一番,在买之前对pcDuino,树莓,cubieBoard进行了比较,最终还是决定买了pcDuino,首先是我之前有了一个Arduino,pcDuino是兼容Arduino的,其次,pcDuino的性能较树莓高很多,咱们玩也得玩得起来是不,树莓的软件支持做得很好(网上都是这么说的),而pcDuino相对来说就差一些,不过没有关系,买这个就是为了学的,要是软件都做好了(比如,我看到树莓的红外模块,只需要连上探头的引脚,然后安装一个软件,直接还有配套的遥控,这岂不是不需要再做啥工作了,想当年用Arduino操控红外的时候,那叫一个纠结啊),那基本就没我们啥事了,有的时候,别人的不足,不方便的地方恰恰是我们的机会(这是马云大叔说的,引用在此,恰到好处)。     好了,废话少说,介绍一下pcDuino吧,pcDuino是一个迷你的PC平台,能够运行PC操作系统,包括ubuntu和Android的ICS,可通过内置HDMI接口输出视频到显示屏幕(电视或是台式机,台式机需要一个VGA转换器,有的时候,电视机也是如此),其主要参数如下:   1.       CPU: 1GHZ, ARM Cortex A8 (这个是ARM的处理器,所以也跟着学了不少ARM的汇编指令,突然发现自己这方面的知识少的可怜,一直在80x86的氛围中,走出来发现天地广阔啊) 2.       GPU:此处省略一行字 3.       DRAM:1GB 4.       Onboard Storage:2GB FLASH,SD card slot for up to 32GB(这里提一下,单独买的板子没有配备SD卡,如果有大存储的需求,还是买一个吧,不过可以买个8G的或是16G的,不是非要32G这么大的,你又不是专门用来看电影的,说实话,2GB的flash也不错了,有的手机只有这个容量呢) 5.       Extension Interface: 2.54 mm headers compatible with Arduino 6.       network interface : RJ45 and USB WiFi Dongle   以上均摘自网络,诸君可上网细看。     买到手的板子,首先就是看看板子怎么样啦,这个不像是吃的或是穿的,可以一眼看穿,这个不行,不经过一些尝试和百度,没有一些专业的专业的知识,你是玩不来的,这个板子的好坏,个人理解,首先是板子的做工,电子产品,特别是板子,做工还是很重要的,用的材料,焊的质量的好坏,都是非常重要的指标,我还清楚的记得,当初买的Arduino的时候,拿到的板子是真的好看,真的好看,弄得我当时就想自己也去做一个,无奈时间不是很够,加上资金紧张,后来也就没能如愿,这次依然是这样的感觉,作为一个学这个的学生,自己按照原理图做一块不是难事。后面一定要做一块,不是,是两块。     其次就是板子的具体功能啦,比如你买了一个电风扇,得开着看看风力如何,持久性如何,板子就是看看电源开启后的散热如何,各个功能模块能否正常的使用,pcDuino上预装了ubuntu,而且还是3以上的版本的,所以可以直接开启看到界面的(如果你有显示屏和相应的连接线的话),正像你想的那样,我手头当时没有显示屏,都是笔记本,不能用。所以想到的,或者说是百度到的,用ssh连接以后进行操作,也可以看到界面,不过需要安装一些程式,ubuntu里面有了ssh,所以也就省去了为没有ssh也不能下载(我们的板子还不能练到网络,就算是连接上了,你没有显示屏,怎么弄呢,关键就是你得有一个办法和板子进行交互,可以向他发送讯息)的烦恼,至于ssh是啥,不多说了,就是能够保证连接的安全性的一种协议,一种实现方法,具体可以问问维基百科。     ssh的连接需要制定的参数是对方的ip地址,这时你还需要一个东西,那就是路由器,通过路由器,连接上你的电脑和你的板子,这样就可以两方均得到一个ip地址,并且通过ssh连接对方,就是这样!说干就干,如果你有使用路由器的经验,这一点不是很难,连接上以后登录路由器进行ip信息查看(192.168.1.1,这个是默认的路由地址,在路由的地步标签上有写),然后得到板子的ip和你的电脑的ip地址,现在你只需要在你的电脑上使用ssh指令就可以顺利的连接上ubuntu@pcDuino啦,如果你的电脑上是运行的linux系统,比如就是ubuntu,ssh应该有预装,如果没有,通过apt-get得到吧,ssh –l ubuntu xxx.xxx.xxx.xxx(xxx部分就是你的路由器里面看到的板子的ip地址,就是inet地址),接下去不出意外就连接上了,需要确认证书,或者说是公钥,因为这个连接之前没有建立过,而ssh的安全就是基于公钥-私钥的体系,其实这部分的内容可以看一看密码学的相关知识,对现代的密码的管理和安全的保障的方法有一个了解也是一件不错的事情,这边回应yes接受对方,后面可以进行秘钥的产生和保存,这样就不需要每次都进行这样的确认了。之后输入默认的密码,也就是ubuntu啦。     这个时候,就已经进入ubuntu@pcDuino了,你可以看到熟悉的linux的bash窗口,就是个小黑框啦,type in 一些指令,ls,cd,lsdev等等的,恭喜你,你已经成功的拥有了一台新的小型电脑啦!其实大多数的应用中,这个板子上的系统用做服务器,进行代码的托管等等的服务,还可以进行临时的存储,内核的试验,python等编程语言的学习,还可以结合arduino进行jeek hack,都是不错的选择,总之,你要学的还很多呢,之后可以配备无线模块,省的每次进行网线的连接,连接上显示设备,或是买一个TFT触屏,哇,这样你差不多有了一个mini的pad了!     关于pcDuino就暂时到这里了,什么?你开玩笑吧,好像是漏了一点啥,嗯,对的,要是你是windows用户怎么办,对于window的忠实粉丝,嗯,我要对他们说,马上你们就不是了,毕竟pcDuino上装不了windows7,也许可以,没有看到过记录,所以你早晚接触linux。嗯,到那时你一定会爱不释手的,这是我真心的感触,不过既然现在是windows用户,好吧,使用puTTY,其实说白了也是ssh,不过在windows下进行了改装,变得更傻瓜了,用起来很方便,基本和linux下一样,多的是图形界面,指定对方ip地址,ok,连接,这儿有一点不同,连接的时候输入用户名,就是ubuntu,密码,也是ubuntu,同样的效果,小黑框出现了。     关于pcDuino,真的就暂时到这里了,后面会有更加精彩的内容,敬请期待!  
相关资源
  • 所需E币: 1
    时间: 2023-7-12 09:15
    大小: 288.72KB
    上传者: 张红川
    day9-tcp报文-ssh报文解析.pdf
  • 所需E币: 0
    时间: 2020-9-6 22:23
    大小: 3.28MB
    上传者: czdian2005
    1.尚硅谷_佟刚_SSH整合案例_需求
  • 所需E币: 0
    时间: 2020-9-6 22:35
    大小: 7.6MB
    上传者: czdian2005
    5.尚硅谷_佟刚_SSH整合案例_删除员工信息
  • 所需E币: 5
    时间: 2019-12-25 16:33
    大小: 313.92KB
    上传者: quw431979_163.com
    linux常用命令手册UNIXTOOLBOXThisdocumentisacollectionofUnix/Linux/BSDcommandsandtaskswhichareusefulforITworkorforadvancedusers.Thisisapracticalguidewithconciseexplanations,howeverthereaderissupposedtoknowwhats/heisdoing.1.System.......................................22.Processes......................................73.FileSystem.....................................84.Network......................................135.SSHSCP.....................................206.VPNwithSSH....................……
  • 所需E币: 5
    时间: 2019-12-24 09:36
    大小: 961.18KB
    上传者: wsu_w_hotmail.com
    ssh……
  • 所需E币: 3
    时间: 2019-8-16 18:50
    大小: 17.54MB
    上传者: daemondong
    免安装终端工具,支持串口,telnet,SSH
  • 所需E币: 3
    时间: 2019-6-2 22:41
    大小: 1.46MB
    上传者: royalark_912907664
    文中基于解决市场上食品销售出现售假、掺假、造假问题的目的。结合物联网技术与移动互联网技术,研究和设计了基于SSH框架的农产品溯源管理系统。系统采用SSH框架,实现视图层、控制层与模型的彻底分离,而且还能实现业务逻辑层与数据持久层的分离。系统利用RFID技术和RSA加密算法,为运输过程的温控体系和二维码信息的安全性提供可靠度的保障。本系统在实现农产品溯源的同时,也为企业和监管部门对食品安全管理提供了优质、高效的服务平台。