go語言ssh代理 go ssh庫

如何設(shè)置SSH代理帳號安全性,怎樣不允許ssh帳號登錄shell

1.更換sshd端口2.禁用ssh密碼登錄,僅使用證書登錄VPS默認的SSHD服務(wù)開啟在22端口,互聯(lián)網(wǎng)上有很多所謂的“hacker”時刻用ssh掃描工具掃描IP上的22端口,然后用字典工具嘗試是否有類似于“123abc”這樣的若密碼,一旦您的root密碼是弱密碼的話,您的VPS就會成為“肉雞”。下面Hi-VPS介紹幾種簡單的方法來保護您的VPSSSH安全。1.更換sshd端口最簡單的法就是更改sshd默認的22端口,這樣ssh掃描工具就以為這個IP上并沒有開啟sshd服務(wù)。sed-i-e's/Port22/Port22233/'/etc/ssh/sshd_config運行上面的命令就把ssh的默認端口改為22233,然后需要重啟sshd服務(wù),生效更改:servicesshdrestart這樣就能在很大程度上解決VPS的ssh被掃描的風險。只需在ssh登錄軟件上把默認的ssh端口也改為22233即可。2.禁用ssh密碼登錄,僅使用證書登錄(使用證書登錄SSH操作比較麻煩,一般用戶在更改默認sshd端口后既可以抵擋一般性的ssd掃描,在不設(shè)置ssh證書的前提下也能在很大程度上增加系統(tǒng)的安全性)使用ssh私鑰登錄而不使用密碼登錄,能在更大程度上保證ssh的安全。(1)創(chuàng)建私鑰可以用putty自帶的“PUTTYGEN”來創(chuàng)建私鑰,PUTTYGEN就在putty的目錄下面,雙擊運行后彈出界面.點擊界面中的Generate按鈕,開始生成一個私鑰,在過程中鼠標要不停的隨機移動產(chǎn)生足夠的隨機數(shù)來幫助生成高強度的私鑰:組后生成的私鑰就是一個很長的隨機字符串,然后輸入私鑰密碼提示(防止你忘了私鑰密碼),私鑰密碼:先在復(fù)制生成的私鑰字符串,然后點擊saveprivatekey來保存私鑰.(2)上傳私鑰至VPS先通過ssh登錄后,運行如下命令創(chuàng)建ssh服務(wù)端配對私鑰:mkdir-p$HOME/.sshtouch$HOME/.ssh/authorized_keys\chmodgo-w$HOME$HOME/.ssh$HOME/.ssh/authorized_keysvim$HOME/.ssh/authorized_keys在VIM中按o(小寫),然后右鍵(通過putty登錄ssh的時候,putty右鍵表示復(fù)制內(nèi)容),剛才的私鑰密碼就復(fù)制進去了,然后按Esc,按兩次大寫字母Z,保存退出.(3)在putty中導(dǎo)入私鑰點擊“Broser”按鈕,導(dǎo)入私鑰:然后設(shè)置自動登錄用戶,這就不用每次都輸入登錄用戶名了:OK,保存session導(dǎo)入私鑰后,再登錄putty就可以直接輸入比較簡單的私鑰密碼了,不用輸入幾十位原始密碼.(4)禁用VPS的SSHD的密碼登錄首先需要編輯sshd_config文件:vim/etc/ssh/sshd_config把PasswordAuthenticationyes這一行改為:PasswordAuthenticationno然后重啟ssh服務(wù):servicesshdrestart(5)使用PAGEANT代理私鑰如果您有好幾臺VPS需要管理,就可以用使用PAGEANT,每次甚至不用輸入私鑰密碼就能登錄.運行PAGEANT.exe,導(dǎo)入你剛才保存的私鑰文件,PAGEANT會讓你輸入私鑰密碼,輸入后PAGEANT就待在右下角任務(wù)欄中,如果需要連接那個ssh,就右鍵點擊PAGEANT,從savedsessions中選擇,直接登錄.

在綏化等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、做網(wǎng)站 網(wǎng)站設(shè)計制作按需設(shè)計網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,綏化網(wǎng)站建設(shè)費用合理。

如何用Go語言打造一個高性能MySQL Proxy

1、先安裝必須的軟件包:jdk和ssh:檢查java -version ;ssh -version 2、Hadoop安裝包: 3、安裝和配置:解壓安裝包,然后進入conf文件夾,修改配置文件: Hadoop-env.sh: export JAVA_HOME=“...

關(guān)于ssh代理。-我以前一直用的是火狐和Tunnelier。Tunnelier上的host一欄的地址寫什么呢 以前地址不好用了

您好!很高興為您答疑!

Tunnelier 需要經(jīng)常更換,可用的IP失效很快,如果要使用代理,建議安裝autoproxy插件,然后配合Goagent帳號使用,詳細教程在:

您可以在火狐社區(qū)了解更多內(nèi)容。希望我的回答對您有所幫助,如有疑問,歡迎繼續(xù)在本平臺咨詢。

如何使用Go語言實現(xiàn)遠程執(zhí)行命令

一般命令

所謂一般命令,就是在一定時間內(nèi)會執(zhí)行完的命令。比如 grep, cat 等等。 執(zhí)行命令的步驟是:連接,執(zhí)行,獲取結(jié)果

連接

連接包含了認證,可以使用 password 或者 sshkey 2種方式來認證。下面的示例為了簡單,使用了密碼認證的方式來完成連接。

import (

"fmt"

"time"

"golang.org/x/crypto/ssh"

)

func connect(user, password, host string, port int) (*ssh.Session, error) {

var (

auth []ssh.AuthMethod

addr string

clientConfig *ssh.ClientConfig

client *ssh.Client

session *ssh.Session

err error

)

// get auth method

auth = make([]ssh.AuthMethod, 0)

auth = append(auth, ssh.Password(password))

clientConfig = ssh.ClientConfig{

User: user,

Auth: auth,

Timeout: 30 * time.Second,

}

// connet to ssh

addr = fmt.Sprintf("%s:%d", host, port)

if client, err = ssh.Dial("tcp", addr, clientConfig); err != nil {

return nil, err

}

// create session

if session, err = client.NewSession(); err != nil {

return nil, err

}

return session, nil

}

連接的方法很簡單,只要提供登錄主機的 用戶*, *密碼*, *主機名或者IP*, *SSH端口

執(zhí)行,命令獲取結(jié)果

連接成功后,執(zhí)行命令很簡單

import (

"fmt"

"log"

"os"

"time"

"golang.org/x/crypto/ssh"

)

func main() {

session, err := connect("root", "xxxxx", "127.0.0.1", 22)

if err != nil {

log.Fatal(err)

}

defer session.Close()

session.Run("ls /; ls /abc")

}

上面代碼運行之后,雖然命令正常執(zhí)行了,但是沒有正常輸出的結(jié)果,也沒有異常輸出的結(jié)果。 要想顯示結(jié)果,需要將 session 的 Stdout 和 Stderr 重定向 修改 func main 為如下:

func main() {

session, err := connect("root", "xxxxx", "127.0.0.1", 22)

if err != nil {

log.Fatal(err)

}

defer session.Close()

session.Stdout = os.Stdout

session.Stderr = os.Stderr

session.Run("ls /; ls /abc")

}

這樣就能在屏幕上顯示正常,異常的信息了。

交互式命令

上面的方式無法遠程執(zhí)行交互式命令,比如 top , 遠程編輯一個文件,比如 vi /etc/nginx/nginx.conf 如果要支持交互式的命令,需要當前的terminal來接管遠程的 PTY。

func main() {

session, err := connect("root", "olordjesus", "dockers.iotalabs.io", 2210)

if err != nil {

log.Fatal(err)

}

defer session.Close()

fd := int(os.Stdin.Fd())

oldState, err := terminal.MakeRaw(fd)

if err != nil {

panic(err)

}

defer terminal.Restore(fd, oldState)

// excute command

session.Stdout = os.Stdout

session.Stderr = os.Stderr

session.Stdin = os.Stdin

termWidth, termHeight, err := terminal.GetSize(fd)

if err != nil {

panic(err)

}

// Set up terminal modes

modes := ssh.TerminalModes{

ssh.ECHO: 1, // enable echoing

ssh.TTY_OP_ISPEED: 14400, // input speed = 14.4kbaud

ssh.TTY_OP_OSPEED: 14400, // output speed = 14.4kbaud

}

// Request pseudo terminal

if err := session.RequestPty("xterm-256color", termHeight, termWidth, modes); err != nil {

log.Fatal(err)

}

session.Run("top")

}

文章標題:go語言ssh代理 go ssh庫
網(wǎng)站URL:http://muchs.cn/article40/docdhho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供、GoogleChatGPT、營銷型網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈企業(yè)建站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

微信小程序開發(fā)