自主交叉編譯openssh實現免密遠端登入

2021-10-05 23:43:46 字數 1712 閱讀 5557

2、移植過程:其實可以根據自己的需要來進行移植,全部移植如下:

在目標板上新建這些目錄:

/usr/local/bin

/usr/local/etc

/usr/libexec

/var/run

/var/empty

將本地機器上的openssh目錄編譯好的檔案拷貝到目標板系統中,具體為:

a、scp、sftp、ssh sshd、ssh-add、ssh-agent、ssh-keygen、ssh-keyscan共8個檔案拷貝到目標板/usr/local/bin

b、moduli、ssh_config、sshd_config共3個檔案拷貝到目標板 /usr/local/etc

c、sftp-server、ssh-keysign 共2個檔案拷貝到目標板 /usr/libexec

3、生成相應的key 檔案:

在目標版 /usr/local/etc/ 目錄下生成key檔案:

cd /usr/local/etc/

ssh-keygen -t rsa -f ssh_host_rsa_key -n ""

ssh-keygen -t dsa -f ssh_host_dsa_key -n ""

ssh-keygen -t ecdsa -f ssh_host_ecdsa_key -n ""

ssh-keygen -t dsa -f ssh_host_ed25519_key -n ""

修改 ssh_host_ed25519_key 許可權為 600:

chmod 600 ssh_host_ed25519_key
不修改會出錯。

開啟 /etc/passwd 檔案,在最後新增下面這一行:

sshd:x:74:74:privilege-separated ssh:/var/empty/sshd:/sbin/nologin
如果開發板的 root 使用者還沒有密碼,鍵入passwd root命令輸入兩次密碼來修改,否其他裝置無法連.

4、簡單測試

在目標板上執行:

$ /usr/local/bin/sshd
可以用 ps 命令檢視sshd是否在工作。

如果執行的過程中有提示缺少動態連線庫,可以在主機上搜尋相應檔案,拷貝到目標板/lib/目錄下面,注意建立軟連線!

ok!不出意外的話可以成功,

5、設定免密遠端登入

a、如果事先有別的版本的ssh,先將/usr/bin目錄下的ssh 備份好,沒有的話就先忽略此步驟。

b、將編譯好的/usr/local/bin 下的ssh ssh-keygen拷貝到/usr/bin 下

c、執行ssh-keygen生成公鑰

d、使用ssh-copy-id [email protected] 拷貝公鑰到遠端主機,若沒有ssh-copy-id 這個命令,則使用如下命令進行拷貝:

cat ~/.ssh/id_rsa.pub |

ssh [email protected] "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys"

e、輸入ssh [email protected] 進行免密登入,應可以登入。ssh -v [email protected]會列印很詳細的除錯資訊。

OpenSSH交叉編譯和移植

一 openssl交叉編譯編譯 2 解壓 tar xvzf openssl 1.0.1h.tar.gz 3 進入解壓後的目錄,然後再建立輸出目錄 make install是安裝在該目錄 如mkdir outdir 4 配置 config no asm prefix home testdir open...

編譯 交叉編譯

交叉編譯含義 是指在乙個平台上生成另乙個平台上的可執行 同乙個體系結構可以執行不同的作業系統,同樣乙個作業系統也可以在不同的體系結構上執行 例 常說的x86 linux平台 指inter x86體系結構及linux for x86作業系統 x86 winnt平台 指inter x86體系結構及win...

交叉編譯(2) 交叉編譯鏈

什麼是交叉編譯鏈 明白了什麼是交叉編譯,那我們來看看什麼是交叉編譯鏈。首先編譯過程是按照不同的子功能,依照先後順序組成的乙個複雜的流程,如下圖 那麼編譯過程包括了預處理 編譯 彙編 鏈結等功能。既然有不同的子功能,那每個子功能都是乙個單獨的工具來實現,它們合在一起形成了乙個完整的工具集。同時編譯過程...