新聞中心
在Linux系統(tǒng)中,SSH(Secure Shell)是一種用于遠(yuǎn)程登錄和管理服務(wù)器的協(xié)議,通過(guò)SSH,我們可以在本地計(jì)算機(jī)上執(zhí)行命令,并將結(jié)果返回到本地計(jì)算機(jī),在Linux SysOps(系統(tǒng)管理員)的日常工作中,SSH是最常用的工具之一,為了提高工作效率,我們需要掌握一些精簡(jiǎn)的SSH操作命令,本文將介紹一些常用的SSH精簡(jiǎn)操作命令及其技巧。

1、SSH基本連接
要使用SSH連接到遠(yuǎn)程服務(wù)器,我們需要知道服務(wù)器的IP地址或域名、用戶名和端口號(hào),默認(rèn)情況下,SSH使用22端口,以下是連接到遠(yuǎn)程服務(wù)器的基本命令:
ssh 用戶名@服務(wù)器地址 p 端口號(hào)
ssh [email protected] p 22
2、SSH密鑰登錄
為了提高安全性,我們通常會(huì)為每個(gè)用戶生成一對(duì)公鑰和私鑰,公鑰存儲(chǔ)在遠(yuǎn)程服務(wù)器上,私鑰存儲(chǔ)在本地計(jì)算機(jī)上,這樣,我們就可以使用私鑰進(jìn)行身份驗(yàn)證,而無(wú)需輸入密碼,以下是使用SSH密鑰登錄的命令:
ssh i 私鑰文件路徑 用戶名@服務(wù)器地址 p 端口號(hào)
ssh i ~/.ssh/id_rsa [email protected] p 22
3、SSH隧道
SSH隧道是一種將一個(gè)網(wǎng)絡(luò)連接封裝在另一個(gè)網(wǎng)絡(luò)連接中的方法,這對(duì)于在不安全的網(wǎng)絡(luò)上傳輸敏感數(shù)據(jù)非常有用,以下是創(chuàng)建SSH隧道的命令:
ssh D 本地端口號(hào) C 用戶名@服務(wù)器地址 p 端口號(hào)
ssh D 8080 C [email protected] p 22
這將創(chuàng)建一個(gè)SSH隧道,將所有通過(guò)本地計(jì)算機(jī)的8080端口的流量轉(zhuǎn)發(fā)到遠(yuǎn)程服務(wù)器。
4、SSH并行執(zhí)行命令
有時(shí),我們需要在多個(gè)遠(yuǎn)程服務(wù)器上執(zhí)行相同的命令,為了提高效率,我們可以使用ssh命令的t選項(xiàng)來(lái)并行執(zhí)行命令,以下是并行執(zhí)行命令的命令:
ssh t 用戶名@服務(wù)器地址 '命令' 用戶名@服務(wù)器地址 '命令' ...
ssh t root@server1 'uname a' root@server2 'uname a' root@server3 'uname a'
這將在server1、server2和server3上并行執(zhí)行uname a命令,顯示系統(tǒng)的詳細(xì)信息。
5、SSH會(huì)話管理
在使用SSH時(shí),我們可能需要同時(shí)與多個(gè)遠(yuǎn)程服務(wù)器進(jìn)行交互,為了方便管理這些會(huì)話,我們可以使用screen或tmux工具,以下是使用screen創(chuàng)建新會(huì)話的命令:
screen S 會(huì)話名稱 ssh 用戶名@服務(wù)器地址 p 端口號(hào)
screen S server1_session root@server1 p 22
這將創(chuàng)建一個(gè)名為server1_session的新會(huì)話,并在其中連接到server1,要切換到其他會(huì)話,可以使用以下命令:
screen r 會(huì)話名稱
screen r server1_session
6、SSH配置文件設(shè)置
為了方便地使用SSH,我們可以將常用的參數(shù)(如用戶名、服務(wù)器地址、端口號(hào)等)保存在一個(gè)配置文件中,以下是一個(gè)簡(jiǎn)單的SSH配置文件示例:
~/.ssh/config Host server1 *.example.com server1.example.com 192.168.1.100 user1 user1password user1keyfile user1port 2222 user1opts "o ConnectTimeout=5" "o ServerAliveInterval=60" "o ServerAliveCountMax=3" user1cmd "ls" user1prompt "%m:%H %d> " user1env "PATH=/usr/bin:/usr/local/bin" user1workdir /home/user1/workdir user1subsystem shell user1forcecommand exit user1logoutcmd exit user1logincmd /bin/bash login user1setoption auto_title true user1setoption auto_motd true user1setoption auto_update true user1setoption auto_check_host_keys false user1setoption auto_cleanup false user1setoption auto_rehash false user1setoption auto_syntax false user1setoption auto_complete false user1setoption auto_prompt false user1setoption auto_history false user1setoption auto_cd false user1setoption auto_pushd false user1setoption auto_popd false user1setoption auto_ignoredups true user1setoption auto_ignoreempty true user1setoption auto_ignorespace true user1setoption auto_ignoretab false user1setoption auto_ignoreeof false user1setoption auto_transpose true user1setoption auto_charset utf8 user1setoption auto_crlf true user1setoption auto_listonly false user1setoption auto_colorize false user1setoption auto_remotecase false user1setoption auto_remoteutf8 false user1setoption remote_forward yes user1setoption remote_stream local nouser1verify unknown host key nouser1preferredauths password,publickeyuser1allowusers user2,user3user1denyusers *user1permitopen noneuser1permitclose noneuser1loglevel infouser1print Motd nouser1print LastLog nouser1print UserKnownHosts nouser1print HostKeyAlgorithms nouser1print HostKeyAliases nouser1print StrictHostKeyChecking nouser1print UserCert noneuser1print UserConversion noneuser1print XAuthLocation noneuser1print Subsystem noneuser1print IdentitiesOnly nouser1print Match group anyuser1print RekeyLimit offuser1print PortForwarding nouser1print AgentForwarding nouser1print XAuthPrompt nouser1print XAuthLocation noneuser1print XAuthUserFile noneuser1print XAuthTunnel nouser1print TunnelDevice anyuser1print TunnelRemote nouser1print TunnelLocal yesuser1print TunnelStatus nouser1print TunnelBearer anyuser1print TunnelServer nouser1print TunnelClient yesuser1print TunnelExitStatus nouser1print TunnelType anyuser1print TunnelDynamic yesuser1print TunnelLCPTimeout nouser1print TunnelRetry yesuser1print TunnelData yesuser1print TunnelIdleTimeout nouser1print TunnelDebug yesuser1print TunnelCookie nouser1print TunnelNoTLSVerify yesuser1print TunnelRemoteCommand nouser1print TunnelRemoteCommandFallback nouser2 *.example.com server2.example.com 77.77.77.77 user2password user2keyfile user2port 2223 user2cmd "ls" user2prompt "%m:%H %d> " user2env "PATH=/usr/bin:/usr/local/bin" user2workdir /home/user2/workdir user2subsystem shell user2forcecommand exit user2logoutcmd exit user2logincmd /bin/bash login user2setoption auto_title true user2setoption auto_motd true user2setoption auto_update true user2setoption auto_check_host_keys false user2setoption auto_cleanup false user2setoption auto_rehash false user2setoption auto_syntax false user2setoption auto_complete false user2setoption auto_prompt false user2setoption auto_history false user2setoption auto_cd false user2setoption auto_pushd false user2setoption auto_popd false user2setoption auto_ignoredups true user2setoption auto_ignoreempty true user2setoption auto_ignorespace true user2setoption auto_ignoretab false user2setoption auto_ignoreeof false user2setoption auto_transpose true user2setoption auto_charset utf8 user2setoption auto_crlf true user2setoption auto_listonly false user2setoption auto_colorize false user2setoption auto_remotecase false user2setoption auto_remoteutf8 false user2setoption remote_forward yes
文章標(biāo)題:linuxssh用法
瀏覽地址:http://m.fisionsoft.com.cn/article/dhpgspo.html


咨詢
建站咨詢
