明月笑刀無情
2023-04-18 19:15:51
背景工作中需要將putty集成到自動(dòng)化構(gòu)建中,因此需要通過程序啟動(dòng)putty并向putty發(fā)送Linux命令執(zhí)行遠(yuǎn)程Linux的相關(guān)操作可行性研究在putty里連接上遠(yuǎn)程服務(wù)器時(shí),putty啟動(dòng)一個(gè)terminal,它監(jiān)控著用戶的鍵盤輸入并通過ssh發(fā)送。每鍵入一個(gè)字符就觸發(fā)一次term_seen_key_event函數(shù),之后如何和ssh互操作的,我還沒有研究到。但應(yīng)該可以通過在terminal的term_init函數(shù)中啟動(dòng)一個(gè)socket監(jiān)聽,由自動(dòng)化的客戶端按照預(yù)置好的命令次序依次向socket發(fā)命令,socket接收了以后傳遞給terminal實(shí)現(xiàn)交互,當(dāng)前只需要單方向交互,客戶端無需收到響應(yīng)。希望對(duì)putty有所研究的大神們給我指點(diǎn)迷津,萬分感謝!
2 回答

慕虎7371278
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊
不建議研究PuTTY重編譯。
PuTTY User Manual中A.4.3 How can I use PuTTY to make an SSH connection from within another program?推薦用Plink,當(dāng)然PuTTY本身也支持命令行。
另外,自動(dòng)化如果僅是發(fā)送數(shù)據(jù)的話,相信遠(yuǎn)端應(yīng)該有個(gè)Server吧(監(jiān)聽?wèi)?yīng)用端口),個(gè)人覺得也可以使用-R轉(zhuǎn)通道(Tunnel Forwarding)為本地IP及端口,這樣客戶端相當(dāng)于直接跟Server的端口交互了~

慕神8447489
TA貢獻(xiàn)1780條經(jīng)驗(yàn) 獲得超1個(gè)贊
一定要用putty嗎?如果只是單純需要ssh的話,用openssh的ssh客戶端也夠用,那么用expect(或pexpect)可以很簡(jiǎn)單地模擬終端輸入。
添加回答
舉報(bào)
0/150
提交
取消