armLinux上實現遠程登錄(即ssh+frp)

一,移植openssh

首先要交叉編譯一個openssh,這個網上教程不少,不贅述;在按照教程把openssh包中的文件拷到開發板對應的目錄下後,手動運行sshd,然後ps查看是否有/usr/bin/sshd進程起來。

我這裏移植時,由於我的分區奇特,就是/usr目錄下對應的空間很小,沒辦法只能把openssh裏面的東西丟到大一些的磁盤空間,然後再去/usr對應的目錄下建立對應的軟連接ln -s 源文件  目標文件(/usr)

在我上傳的資源中有用arm-none-linux-gnueabi-..已經編譯好的openssh包,1積分下載,裏面的密鑰的權限需要改,或者自己重新生成拷貝到裏面去;

密鑰生成,在pc的Linux系統中執行下面指令:

ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -N ""
ssh-keygen -t rsa -f ssh_host_rsa_key -N ""
ssh-keygen -t dsa -f ssh_host_dsa_key -N

然後將這些密鑰拷到開發板的目錄中/usr/local/etc/

如果運行sshd報錯,ps|grep ssh 發現沒有sshd程序運行。就執行下面

  1. chown -R root.root /var/empty/sshd

  2. chmod 744 /var/empty/sshd

  1. 解壓openssh.tar.bz2到開發板的根目錄:

2.修改開發板/etc/passwd文件, 在最後一行下面添加一行

sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin

注意:目錄/usr/local/etc/sshd_config中將PermitRootLogin yes前的註釋去掉(這樣才能root密碼登錄)

如果還想使用它的sftp功能的話,還需把該文件下的PasswordAuthentication yes前的註釋去掉

還有就是用winscp時要選擇scp而不是sftp,否則會報驗證失敗

  1. 給開發板增加用戶密碼

passwd root

  1. 手動運行sshd服務:

    root@myzr:/home/test# /usr/sbin/sshd

通過ps可以,可查看服務是否在運行.

 

二,搭建內網穿透

由於我的開發板是SIM卡,運營商內網卡,要遠程登錄開發板的話,除了在開發板上安裝ssh服務之外,還要搭建內網穿透的服務。

從我上傳的資源中下載allKindsOfFrp包,1積分,解壓,將其中arm包中的frpc和frpc.ini考到開發板中;386包中的frps 及 frps.ini考到服務器上(外網)

使用示例

將 frps 及 frps.ini 放到具有公網 IP 的機器上。

將 frpc 及 frpc.ini 放到處於內網環境的機器上。

通過 ssh 訪問公司內網機器

  1. 修改 frps.ini 文件,這裏使用了最簡化的配置:
# frps.ini
[common]
bind_port = 7000
  1. 啓動 frps:

./frps -c ./frps.ini

  1. 修改 frpc.ini 文件,假設 frps 所在服務器的公網 IP 爲 x.x.x.x;
# frpc.ini
[common]
server_addr = x.x.x.x
server_port = 7000

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
  1. 啓動 frpc:

./frpc -c ./frpc.ini

  1. 通過 ssh 訪問內網機器,假設用戶名爲 test:

ssh -oPort=6000 [email protected]

下面內容爲轉發:

frp多客戶端,實現一臺雲服務器連接多個局域網內的主機,多端口轉發

原創段小二bilili 最後發佈於2018-12-16 23:23:08 閱讀數 4324  收藏
展開
很簡單,用不同的frps.ini就行

假設你原來已經啓動了一個frps.ini,現在想再加一個。
那就新建一個frps1.ini,然後端口和之前的不一樣就行。
假設之前有一個7000的端口了,那現在這個用7001就可以啦~

cp frps.ini frps1.ini
如下

frps.ini

[common]
bind_port = 7001
你想連的那臺電腦上的frpc.ini。

frpc.ini

[common]
server_addr = x.x.x.x
server_port = 7001
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6001
注意remote_port也要和之前的連接不一樣!
————————————————
版權聲明:本文爲CSDN博主「段小二bilili」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/dqf009/article/details/85042435

 

 

發佈了18 篇原創文章 · 獲贊 0 · 訪問量 5527
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章