ssh如何查看編譯環境
❶ 虛擬機的linux安裝的SSH,怎麼配置吖,求詳細的方法,詳細
(SSH是一個用來替代TELNET、ftp以及R命令的工具包,主要是想解決口令在網上明文傳輸的問題。為了系統安全和用戶自身的權益,推廣SSH是必要的。SSH有兩個版本,我們現在介紹的是版本2。) 安裝SSH 具體步驟如下: 獲得SSH軟體包。 ( ftp://ftp.pku.e.cn :/pub/unix/ssh-2.3.0.tar.gz ) 成為超級用戶(root). # gzip ?cd ssh-2.3.0.tar.gz |tar xvf ? # cd ssh-2.3.0 # ./configure 注意,如果你希望用tcp_wrappers來控制SSH,那麼在configure時需要加上選項「--with-libwrap=/path/to/libwrap/」, 用來告訴SSH關於libwrap.a 和tcpd.h的位置。 # make # make install 和SSH有關的程序都放置在/usr/local/bin下,包括ssh,sftp,sshd2, ssh-keygen等。 二、配置 SSH的配置文件在/etc/ssh2下,其中包括sshd2的主機公鑰和私鑰:hostkey和hostkey.pub。這兩個文件通常是在安裝SSH時自動生成的。你可以通過下面的命令重新來生成它們: # rm /etc/ssh2/hostkey* # ssh-keygen2 ?P /etc/ssh2/hostkey 而ssh2_config 文件一般情形下無需修改。 三、啟動sshd2 每個要使用SSH的系統都必須在後台運行sshd2。用手工啟動: # /usr/local/sbin/sshd2& 可以在「/etc/rc2.d/SArrayArraylocal」中加入該命令,這樣系統每次啟動時會自動啟動sshd2。 四、用tcp_wrappers控制SSH 安裝SSH的站點可以用tcp_wrappers來限制哪些IP地址可以通過ssh來訪問自己。比如,在/etc/hosts.allow中加入 sshd,sshd2: 10.0.0.1 那麼只有10.0.0.1可以通過ssh來訪問該主機。 以上都是系統管理員完成的工作。下面我們說說普通用戶如何使用SSH。 五、基本應用 每個用戶在使用SSH之前,都要完成以下步驟: 在本地主機(比如,local.pku.e.cn)上生成自己的ssh公鑰和私鑰。命令如下: local# ssh-keygen Generating 1024-bit dsa key pair 1 oOo.oOo.o Key generated. 1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05 Passphrase :************ /*在此輸入你的口令,以後訪問這台主機時要用。 Again :************ /* Private key saved to /home1/teng/.ssh2/id_dsa_1024_a Public key saved to /home1/teng/.ssh2/id_dsa_1024_a.pub 生成的私鑰和公鑰(id_dsa_1024_a和id_dsa_1024_a.pub)存放在你家目錄的~/.ssh2目錄下。和用戶相關的SSH配置文件都在~/.ssh2下。私鑰由用戶保存在本地主機上,而公鑰需傳送到遠地主機的你自己的帳號的~/.ssh2下,如果你要用ssh2訪問本地主機的話。 在~/.ssh2下創建「identification」文件用來說明進行身份認證的私鑰。命令如下: local:~/.ssh2# echo "IdKey id_dsa_1024_a" > identification 3.同樣地,在遠地主機(比如,remote.pku.e.cn)上完成上面步驟。 4.將本地(local.pku.e.cn)下你自己(這里是「teng」)的公鑰(id_dsa_1024_a.pub)拷貝到遠地主機(remote.pku.e.cn)上你自己家目錄下的.ssh2目錄下,可命名為「local.pub」,一般用ftp上傳即可。 在遠地主機上,你自己家目錄的.ssh2目錄下,創建「authorization」文件,其中指定用來進行身份認證的公鑰文件。命令如下: remote:~/.ssh2# echo 「Key local.pub」 > authorization 現在你可以從本地用ssh2登錄到遠地系統了。命令如下: local# ssh remote.pku.e.cn Passphrase for key "/home1/teng/.ssh2/id_dsa_1024_a" with comment "1024-bit dsa, teng@ns, Fri Oct 20 2000 17:27:05":*********** 這時會要你輸入你的ssh口令(Passphrase)。驗證通過後,即登錄到remote主機上。 ################################################################################ 1、環境: 因為我們選用的SSH伺服器是 http://www.ssh.com 的SSH Secure Shell for unix類產品,所以我們主要介紹一下此類的Ssh伺服器的安裝過程。(SSH有兩個版本,我們現在介紹的是版本2;Openssh就不介紹了,大家有興趣的話可以參考一下網上文章) 2、編譯安裝 我們前面介紹過,現在的Ssh server for unix 類的最新版本是ssh-3.2.Array-1,我建議大家用官方提供的TAR包,當然,如果你不熟悉編譯過程,用RPM等安裝方式也是可以的。如果用RPM安裝,請先下載ssh-3.2.Array-1.i386.rpm , 大家可以到以下地址下載: http://ftp.ssh.com/priv/secureshell/32Arraywks+srv-lt4Arrayldrk/linux/ssh-3.2.Array-1.i386.rpm 安裝時請用管理員許可權 # rpm ?ivh ssh-3.2.Array-1.i386.rpm 如果是升級安裝那參數就用 ?Uvh 而3.2.Array-1的TAR包大家可以到 http://downloads.planetmirror.com/pub/ssh/ssh-3.2.Array.1.tar.gz 下載。安裝時也使用管理員許可權: # tar xzvf ssh-3.2.Array.1.tar.gz # cd ssh-3.2.Array.1 # ./configure (這里我們要說明一下,原來有些文檔寫如果你希望用tcp_wrappers來控制SSH,那麼在configure時需要加上選項「--with-libwrap=/path/to/libwrap/」, 用來告訴SSH關於libwrap.a 和tcpd.h的位置,但3.2.0以上的SSH已經不需要這么麻煩了,它們已經內置了控制訪問許可權的功能。) # make ; make install ; make clean 這樣就結束了安裝。 3、簡單配置Ssh server 無論你是用RPM或TAR包安裝的ssh server,它的配置文件都在/etc/ssh2/sshd2_config,安裝完後一般不用配置它,但如果你的22埠在安裝ssh server之前已經被其他程序佔用,那麼你需要簡單的配置一下這個文件,執行 vi /etc/ssh2/sshd2_config,找到第27行,Port 22 ,把22改成其他的埠就可以了。 4、啟動Ssh server Ssh server 的默認啟動文件是/usr/local/sbin/sshd2,而安裝程序自動做了一個連接到這個文件的名字為sshd的文件,我們只要在/usr/local/sbin/目錄中執行 ./sshd & 就可以簡單的啟用Ssh server,然後我們執行 # netstat ?na 會看見22埠已經被監聽了(你的可能是其他埠,具體看你在sshd2_config文件中的設置了。)但我們不想每次都要手動啟動Ssh server,那麼我們可以修改一下/etc/rc.d/rc.local文件,在這個文件的最後加入以下內容: #start ssh /usr/local/sbin/sshd & 其中第一行為注釋內容,第二行為啟動SSH伺服器並作為後台守護進程運行。 這樣就好了,系統重起時可以自動啟動SSH服務,但是啟動後你如果在伺服器端插上 顯示器 ,會在最後該登陸的時候看到一行字,意思就是Ssh server 服務啟動了,我比較挑剔,不想看到這個提示,而且我想把Ssh服務放到LINUX服務啟動過程中,這樣比較美觀一點。那麼我們就不能修改/etc/rc.d/rc.local文件,我們要進入/etc/init.d/中建立一個SHELL文件,名字就叫sshd 內容如下: #!/bin/bash cd /usr/local/sbin ./sshd & 然後給這個文件加上可執行許可權 # chmod +x sshd 然後進入/etc/rc3.d,做一個軟鏈接文件 # cd /etc/rc3.d # ln -s ../init.d/sshd S13sshd 這樣就達到了我的要求,好了,Ssh server的安裝就介紹到這里吧,安裝是很簡單的,希望大家編譯安裝成功。
❷ 如何從零開始學習OpenWrt
第一部分:搭建編譯環境
1、安裝Ubuntu(編譯需要Linux環境),到其官網下載,版本根據自己所需選擇即可。可以選擇安裝到虛擬機或者物理機,圖形化安裝而且是中文版,連安裝都搞不定的,可以關閉本頁面了;
2、切記不要改動軟體源,同時按住Ctrl + Alt + T,調出終端;
3、逐條輸入下列命令(及時驗證是否安裝成功):
sudo apt-get install g++
sudo apt-get install libncurses5-dev
sudo apt-get install zlib1g-dev
sudo apt-get install bison
sudo apt-get install flex
sudo apt-get install unzip
sudo apt-get install autoconf
sudo apt-get install gawk
sudo apt-get install make
sudo apt-get install gettext
sudo apt-get install gcc
sudo apt-get install binutils
sudo apt-get install patch
sudo apt-get install bzip2
sudo apt-get install libz-dev
sudo apt-get install asciidoc
sudo apt-get install subversion
sudo apt-get install sphinxsearch
sudo apt-get install libtool
sudo apt-get install sphinx-common
至此編譯環境搭建完成。
第二部分:下載OpenWrt源碼並編譯
OpenWrt源碼分兩種,一種是最新但不是最穩定的Trunk開發版,一種是最穩定的Backfire版,建議下載官方源碼。下載前先在本地創建文件夾:
mkdir openwrt
sudo chmod 777 openwrt
cd openwrt
選擇你想要的版本然後執行下載命令,下載結束會顯示版本號:
Trunk版下載命令:
svn co svn://svn.openwrt.org/openwrt/trunk/
Backfire版下載命令:
svn co svn://svn.openwrt.org/openwrt/branches/backfire/
添加軟體擴展包,將feeds.conf.default修改為feeds.conf:
cp feeds.conf.default feeds.conf
更新擴展,安裝擴展:
./scripts/feeds update -a
./scripts/feeds install -a
註:如果不是剛下載的源碼,為保持代碼為最新狀態,應定期運行svn update命令更新源碼。
測試編譯環境:
make defconfig
到這里就可以開始編譯自己的固件了。進入定製界面:
make menuconfig
如果一切正常,會出現一個配置菜單,可以選擇要編譯的固件平台(晶元類型)、型號,還能選擇固件中要添加的功能和組件,配置好後保存並退出菜單即可。
如果你想修改源碼,應該在此步進行,如支持大容量Flash之類的修改,自己上網查到修改什麼文件什麼地方後,就在ubuntu圖形界面上進去找到文件,雙擊打開文本編輯器修改保存。
開始編譯:
make
或者
make V=99
或者
make -j V=99
make是編譯命令,V=99表示輸出debug信息,V一定要大寫,如果要讓CPU全速編譯,就加上 -j 參數,第一次編譯最好不帶-j參數。
編譯過程保持聯網(會從網上下載一些源碼包),所以斷網可能造成編譯中斷,編譯所需時間與電腦CPU及網路環境有很大關系,第一次編譯時間較久,快則半小時長則2、3個小時,之後的編譯所需時間較短。編譯完成後會在源碼文件目錄出現bin文件夾(如trunk/bin/XXXX),如果你手裡的路由是原版固件需要刷OpenWrt需要選用XXX-factory.bin固件,如果路由已經刷了OpenWrt,選用升級固件XXXX-sysupgrade.bin升級用的,在升級界面升級即可。進到文件夾找到你需要的固件傳出(通過郵箱、網盤、U盤等),開始刷機吧。
第三部分:將OpenWrt刷入路由器
要在路由器上使用OpenWrt,首先要將路由器固件刷新為OpenWrt,即相當於OpenWrt 系統的安裝,不同型號的路由器的安裝方法可能也會不一樣,但一般常用的有三種方法:
Web上傳固件更新
PFTP上傳固件更新
編程器寫入固件
具體型號的路由器適用於哪種或哪幾種方法,需自行嘗試。
第四部分:開始使用OpenWrt
要對OpenWrt進行配置,一般有兩條途徑:
SSH登錄通過命令行控制
Web登錄通過Web界面設置
首次安裝OpenWrt後,需要設置密碼才可以使用SSH登錄,方法是使用telnet登錄或者Web登錄設置密碼。在Windows下面telnet和SSH登錄可以使用Putty,在Linux或Mac下可分別使用如下命令:
ssh –l root 192.168.1.1 //Linux
ssh [email protected] //Mac
一般指令與常見Linux發行版相同,但是OpenWrt使用自己的包管理器:opkg,使用「opkg –help」查看幫助信息。以下是一些常用操作命令:
opkg update //更新軟體包列表
opkg install //在線安裝軟體包
opkg remove //移除軟體包
登錄Web管理界面,前提是該OpenWrt系統中要安裝了Web界面,一般是Luci,登錄方式與普通路由器無異,打開瀏覽器,輸入路由器IP即可進入登錄界面,OpenWrt的默認IP是192.168.1.1。
到此,OpenWrt的大門已為你敞開。接下來,開始嘗試利用OpenWrt實現更多智能應用吧,比如單號多撥榨取運營商帶寬、綁定域名遠程式控制制、掛載大容量硬碟、搭建BT下載機、搭建網路攝像頭、Samba/DLNA家庭NAS共享、私有雲同步、FTP、個人網站/伺服器
❸ SSH 連接過程設置環境變數
在使用 SSH 連接的過程中,可能需要設置一些環境變數,用於初始化,或者在連接過程中作為終端標記。
在這個過程中,會使用到以下兩個 Option:
需要在 sshd_config 中指定允許客戶端進行設置的變數名。
文件位置:
設置方法:通過 AcceptEnv 關鍵字來指定,可以使用通配符,如 LC_* 。
注意:設置之後需要重啟 SSD 服務。
在客戶端使用 SSH 連接伺服器時,通過以下方式指定參數。
(完)
❹ 如何在 SSH 下遠程使用 IDE 編譯和調試
在 SSH 下遠程使用 IDE 編譯和調試步驟如下:
本地機安裝運行xming,運行putty,設置putty的Enable X11 forwarding
❺ SSH連接時發送/設置環境變數
SSH連接時有時需要自動設置特定的環境變數,如LANG等。如果您使用專用的圖形化SSH終端,如XShell之類的工具,可以直接在相應軟體的連接配置文件里設置。這里記錄的是直接在 終端使用SSH命令連接 的情況下,發送環境變數的兩種方法(SendEnv和SetEnv)。
SendEnv需要提供一個或多個本地已存在的環境變數名,將本地環境變數發送到遠程主機上去;SetEnv可以直接指定一個新的環境變數名和值設置到遠程主機上。
1. 如果你在使用ssh config配置文件(~/.ssh/config),格式如下:
2. 如果你想在命令行場景下中使用,格式如下[1]:
3. 也可以通過添加K=V格式的環境變數到~/.ssh/environment文件來設置對所有SSH主機都要應用的環境變數,但是這些環境變數仍然受到伺服器sshd設置中AcceptEnv的限制。
1. SetEnv是OpenSSH 7.8新增加的特性,發布於2018年。而SendEnv早就已經普遍支持。
2. 有些極特殊的環境變數如(TERM)暫時還不能通過SetEnv/SendEnv設置,見文章[2]。
3. 你想要設置的變數,必須在服務端/etc/ssh/sshd_config里用AcceptEnv明確允許接收。如果要設置的變數不在其中,需要在sshd配置里加入,或者利用PermitUserEnvironment配置項詳細配置,或者看下面一條注意事項中的間接繞過方法。
實測默認允許接收的變數如下:
CentOS 8
Ubuntu 16.04 / MacOS 11.3
4. 另一種發送環境變數的思路是設置連接後自動執行的命令去export變數(類似於文章[1]中提到的workaround)。也可以考慮利用RemoteCommand配置項,但可能有其他問題,如運行ssh hostname command格式的(非互動式shell)命令時可能會報錯。見文章[3]提到的問題。
[1] When ssh'ing, how can I set an environment variable on the server that changes from session to session?
[2] SSH: Behavior of SetEnv for TERM variable
[3] Remote command in ssh config file
❻ linux 配置ssh有幾種方法
直接使用Linux系 統的root帳戶登錄系統,在很多環境下是不允許。而且如果網路中的所有機器都能使用ssh登錄關鍵伺服器也是不允許的。這就要求我們需要使用一些手段, 現在root帳號的登錄,而且是只有指定的幾台機器才能登錄。當然限制登錄的ip這些通過網路設備也恩那個完成。但是我們只需要了解怎麼使用系統自己的功 能實現,這是每一個系統管理員都比較了解的。
1,修改ssh的配置文件,是root用戶只能通過本地登錄,不能通過遠程ssh連接伺服器。
vim /etc/ssh/sshd_config,
把#PermitRootLogin yes改成
PermitRootLogin no,然後重啟ssh伺服器,root用戶就不能通過ssh遠程登錄系統了,只能通過一個普通帳號su或者本地登錄。
2,可以同修改其他系統配置文件,使之能通過幾個指定的IP遠程ssh登錄伺服器。把下面這段放到root的.bash_profile文件中
ALLOWHOSTSLIST="192.168.163.1"
REMOTEHOST=$(env | grep SSH_CLIENT | awk '{print $1}' | awk -F "=" '{print $2}')
if echo "${ALLOWHOSTSLIST}" | grep "${REMOTEHOST}" > /dev/null
then :
else
exit
fi
結果就只能通過IP地址是192.168.163.1這台伺服器通過ssh遠程連接本伺服器了。
3,可以把需要ssh遠程伺服器的IP地址添加到/etc/hosts.allow,例如下面的操作:
sshd:192.168.163.1:allow #只允許這個IP地址ssh登錄
sshd:192.168.163.:allow #允許這個網段的所有IP地址ssh登錄
sshd:all:deny #拒絕所有沒有出現在上面的IP地址的ssh連接
4,也可以使用iptables指定能夠遠程ssh到伺服器的IP地址
iptables -A INPUT -p tcp --dport 22 -s 192.168.163.1 -j ACCEPT #允許這個IP地址ssh連接本伺服器
iptables -A INPUT -p tcp --dport 22 -s 192.168.163.0/24 -j ACCEPT #允許這個網段的所有IP遠程ssh連接本伺服器
iptables -A INPUT -p tcp --dport 22 -j DROP #除了上面允許的IP地址外,都拒絕使用ssh連接到伺服器