Showing posts with label openssh. Show all posts
Showing posts with label openssh. Show all posts

Saturday, September 18, 2010

openSUSE登入使用者後才能被ssh


給未來的裕翔

不知道是筆電的關係還是openSUSE的關係

如果沒有登入使用者, 並且跑完progress bar

那麼, 我就無法從另一台電腦ssh連過去

Wednesday, August 4, 2010

ssh-agent的功能

給未來的裕翔

關於ssh-agent的功能

其實我不是很清楚......

直接打ssh-agent, 這樣算執行一次

eval $(ssh-agent), 這樣也算執行一次

此時用pidof ssh-agent

可以看到兩個pid

總之, 如果我要用ssh-add先取得我的密碼的話

ssh-agent就要先執行

直接打ssh-agent再ssh-add不行

非得eval $(ssh-agent)才可以

Monday, July 19, 2010

ssh-copy-id的-i選項

給未來的裕翔

ssh-copy-id的功能

是把經過ssh-keygen -t dsa產生的~/.ssh/id_dsa.pub

append到ssh server的~/.ssh/authorized_keys裡

之所以要ssh-copy-id -i ~/.ssh/id_dsa.pub

是因為我的public key非它處理的預設檔名, identity.pub

所以需要使用-i選項來指明我的public key檔名

Monday, July 12, 2010

sshd更強化

給未來的裕翔

sshd安全姓可以更加強化

依舊感謝IT Ranger的教學

在/etc/ssh/sshd_config

除了原本就有在使用的PermitRootLogin no之外

也可以考慮新增

AllowUsers bob

這樣就只有bob可以使用ssh登入, 預設是誰都可以登入

再來就是改sshd的預設lister port

預設是Port 22

改成別的Port xxxx,

iptables要記得新增開放的port

注意, 號碼別選太小, 不然會有selinux的問題

據說這樣還是可以用port scan找出有在listen的port

不過我自己用nmap試是沒有找到的

設定好後, client要怎麼登入?

ssh bob@host -p xxxx

xxxx是我在server設定的登入port

怕麻煩的話

可以在client端的/etc/ssh/ssh_config新增Port xxxx

或是使用者自己新增Port xxxx到~/.ssh/config(預設不存在)

注意, 新建的config是664, 這樣無法使用, 不知為啥

要改成644, 就可以用了^^

不過我個人不建議修改/etc/ssh/ssh_config或是~/.ssh/config

怕哪天忘記

所以用命令參數吧

ssh 140.114.229.129 -p xxxx

比較1: sshd_config是設定ssh server

ssh_config是設定ssh client

比較2: ssh client要連到ssh server時

如果被防火牆擋住, 會顯示... No route to host

如果是被sshd_config設定擋住, 會顯示... Connection refused

再次感謝IT Ranger

Thursday, July 8, 2010

vnc server使用&權限問題

給未來的裕翔

想要在linux開放遠端桌面的話

想架server的那台

安裝tigervnc和tigervnc-server

然後輸入vncserver

和密碼, 似乎第二次連線不需要密碼?

然後會開啟port 5901

在client端, 安裝tigervnc, 這樣就有vncviewer可以用

不過不知道為啥

直接vncviewer host:port會失敗

不過也不建議直接連啦

因為除了一開始passphrase部份, 似乎都是明碼傳送

所以最好見一個ssh tunnel

ssh -L 9901:remote-host:5901 remote-host

這樣只要我在client端只要從9901出去, 就會連到remote-host的5901

ssh tunnel建立完成

接下來client端輸入vncviewer localhost:9901

連到遠端後, 如果要結束vnc連線

在遠端輸入vncserver -kill :1

如果沒這樣做的話, 單純只有關掉視窗

那還可以再重連一次^^

也表示別人可以連我的remote-host囉? =.=

注意到一件事

System -> Preferences -> Remote Desktop

可以設定遠端連線, 但我們剛剛都沒有碰到喔~

也就是真要達成遠端連線的話, 可以完全不管那個

最後, 剛才過程發現一件詭異的事, normal user連到remote-host後

變root!? 我再多試幾次看看=.=

如果不希望開兩個terminal

一個建ssh tunnel, 一個vncviewer的話

ssh -Nf -L 9901:remote-host:5901 remote-host

-N: do not execute a remote command

-f: background

Sunday, June 20, 2010

ssh server改port也沒用?

給未來的裕翔

那天看人家部落格

寫說可以在/etc/ssh/sshd_config改變連接port

結果改成別的port之後

拿別台機器當ssh client

不指明新port的情況下連到ssh server

可以成功耶!!!

經我多番測試

似乎被自動以新port連結

這樣的話, 改port有什麼用阿......

後記:

喔!!! 不!!! 是我笨了!!!

是我自己設定過~/.ssh/config的!!!

改port~? 有效的!!!

Thursday, June 17, 2010

改變Socks host的port

給未來的裕翔

之前因為宿舍網路沒實驗室快

所以建一條ssh: local的80連到實驗室的22

sudo ssh -D 80 xxxxx@yyy.yyy.yyy.yyy -p 22

然後再設定瀏覽器的Socks host為自己

127.0.0.1:80

這樣會有個問題, 我local的web server勢必要關掉

那我的筆記部落格就不能用啦

雖然之前都以gmail客難, 先把筆記寫在信裡

再從信裡貼上

可是呢, 就在剛剛, 出了點問題導致瀏覽器關掉

gmail幫我自動存的草稿部份居然只有最最前面!

那我後面的筆記都白打啦~

忍無可忍, 決定嘗試更改local的Socks host的port

ex: 瀏覽器的Socks host設為127.0.0.1:aaaa

於是嘗試sudo ssh -D aaaa xxxxx@yyy.yyy.yyy -p 22

居然就成功了!!!

之前的被我學習的部落格

可否一開始別以port 80為範例呢......

我還以為因為跟網路相關所以必須要設80呢!

終於, 不死的筆記部落格重現!!! ^^

Wednesday, June 9, 2010

ssh佔用httpd的port

給未來的裕翔

當在host-a時, 為了加速網頁瀏覽

sudo ssh -D 80 xxx@host-b -p 22

然後設定瀏覽器的SOCKS

為此, 必須把httpd服務先關掉, 因為port 80衝到

之後如果不用, 就算terminal關掉, 瀏覽器關掉

ssh的process還是在的

此時無論怎麼sudo service httpd start都不會成功

必須先把ssh那個process關掉

Thursday, May 20, 2010

ssh套件&相關小筆記

給未來的裕翔

想要使用ssh時

請安裝openssh, openssh-clients, openssh-server

ssh server會以tcp的port 22來等待服務, ssh client則不是以port 22連過去

client端的~/.ssh/known_hosts會紀錄連過線的ssh server

要設定ssh server時

記住是/etc/ssh/sshd_config

而不是/etc/ssh/ssh_config

裡面有幾個設定可以注意一下

PermitRootLogin建議設為no

PermitRootLogin without-password, 這是讓開放root以passphrase登入

Banner /file/path, 可以在/file/path裡面加入文字, 秀給ssh client登入時看

sftp老師很喜歡

因為它有lls

get file [local-path]

put local-path [remote-path]

另外, 以下兩個指令通常很少用, -L是local, -R是remote

ssh -L client-port:hosta:hosta-port hostb

我聽本機的client-port, 然後直接丟給hostb, 請hostb幫我丟給hosta的hosta-port

ssh -R serverport:hosta:hosta-port hostb

我聽遠端的server-port, 有服務請求到它那的話, 我幫它丟給hosta的hosta-port

ssh passphrase

給未來的裕翔

如果client和ssh server想建立key passphrase

請照以下操作

首先在client端

ssh-keygen -t -rsa

這樣會在~/.ssh裡面產生

id_rsa, 這是private key

id_rsa.pub, 這是public key

接著使用ssh-copy-id -i ~/.ssh/id_rsa.pub target-user@ssh-server

(上面那個id_rsa.pub的確實位置要指定, 不然會找不到)

注意, ssh server的target一開始~/.ssh並不需要存在

因為不存在的話, client作ssh-copy-id時會自動在ssh server上建立它

那個ssh-keygen建立時如果沒輸入passphrase

之後就可以直接登入ssh server的target user

如果有輸入pass phrase

client可以ssh-agent bash

然後ssh-add, 輸入一次passphrase之後, 之後就不需要再輸入了

不過之後是到多之後我不知道

註記: ssh server的target user的~target-user權限不能是777

.ssh必須是700

authorized_keys必須是600

不然passphrase機制會出問題

Sunday, April 4, 2010

增開ssh server的port

給未來的裕翔

現有一個ssh server, ex: ru129.dorm.nthu

如果想要增開服務的port

先去看/etc/services還有哪個port沒被用

tac /etc/services | grep 23

23, 24, 25, 26, 試到26就發現一個沒人用的了

修改/etc/ssh/sshd_config

新增Port 26

原來的#Port 22繼續保持註解也沒關係

接著對selinux解禁

semanage port -a -t ssh_port_t -p tcp 26

-a: add

-t: type吧, 我猜


重啟sshd後, client端就可以使用

ssh ru129.dorm.nthu -p 26來連接新增的port

ps: server端的iptables要記得為port 26新增規則

ssh突破port限制

給未來的裕翔

也許哪天在公司裡需要這技巧

假設現在所在的地方, 只有開放port 80

但我想使用別的port

先找一台ssh server, ex: ru129.dorm.nthu

然後sudo ssh -D 80 bob@ru129.dorm.nthu -p 22

-D: local端要出發的port

-p: server端要到達的port


接下來如果要使用firefox或是pidgin

就分別去做proxy設定

firefox而言: Edit -> Preferences -> Advanced -> Network -> Settings

-> Manual proxy configuration -> SOCKS Host: 127.0.0.1 Port: 80

pidgin也類似, 不過因為還沒親自去試

所以先不寫詳細操作


Saturday, March 20, 2010

ssh -X 工作站

給未來的裕翔

當想要以bob身份登入140.114.24.115工作站

並且執行GUI程式icfb

ssh -X bob@140.114.24.115

icfb &

一開始會失敗

X Error of failed request:  BadName (named color or font does not exist)
Major opcode of failed request:  45 (X_OpenFont)
Serial number of failed request:  15
Current serial number in output stream:  30


google到幾個處理方法

有人說xhost +140.114.24.115

有人說安裝75 dpi字型

因為軒哥一開始也有xhost +140.114.24.115

但還是沒成功

所以應該就是字型問題!

以GUI新增移除程式一口氣裝了所有的xorg-x11-fonts

重新ssh -X bob@140.114.24.115

icfb &

成功^^

不過因為一口氣裝太多字型

我現在還不確定哪個是關鍵字型

ssh遠端操作希望有程式介面

給現在的軒哥^^

假設現在想要以bob的身份連進工作站

假設工作站IP是: 123.321.123.567

ssh bob@123.321.123.567

如果希望能夠在ssh server開GUI程式, , ex: pidgin

pidgin &

馬上看到錯誤訊息


(Pidgin:1791): Gdk-CRITICAL **: gdk_display_get_name: assertion `GDK_IS_DISPLAY (display)' failed
Pidgin 2.6.6-2.fc12


** (Pidgin:1791): WARNING **: cannot open display: unset

到此, 是你已經遇到的情形

處理方式: 在一開始ssh的時候加-X選項

ssh -X bob@123.321.123.567

就我自己兩台電腦測試是ok的

如果還是不行

希望你搞定後跟我分享^^

Monday, March 15, 2010

SSH為什麼建議把PermitRootLogin設定為no

給未來的裕翔

對於鳥哥這樣建議(他沒說為什麼)

我最近突然有個想法

假紹我ssh server的IP是140.114.229.129

當我在client端以test-userssh連線到server端時
ssh 140.114.229.129


會自動變成

ssh test-user@140.114.229.129

然後prompt密碼等我輸入

由於server端根本沒有test-user這位使用者

輸什麼密碼都不會成功

(假設我知道serveruid=501的密碼, client端同uid不同user-name連線也是沒用)

基於這樣的理由, 我們可以知道

想駭入人家帳號, 帳號也是很重要的! 廢話...

重點來了

通常我們不知道任一ssh server的任一帳號

除了root...!

假設現在有個ssh server叫做welcome

ssh root@welcome總是能進到輸密碼畫面

這樣並不是說就可以保證駭入welcome

只是welcome被駭風險馬上大大提高

所以, 鳥哥建議在/etc/ssh/sshd_config設定PermitRootLogin no

也許是因為這樣(或許還有別的考量)


難怪wordpress都會建議新手把admin帳號改成別的

有些資料庫好像也是~

ps: 雖然不會知道任一帳號, 難道任一ssh server就可以知道?

請愛用nmap^^ 對每部電腦scan, 看哪些服務有開啟

雖然可能不是很有效率, 但我暫時也不知道別的方法了

Wednesday, March 10, 2010

scp複製遠端檔案

給未來的裕翔

如果你想從remote端複製一個檔案到local

可以使用scp

情境假設:

remote端的IP: 140.114.229.129


remote端的檔案: /home/bob/Desktop/wordpress-backup

現在我想把remote端的檔案複製到local端的當下位置

scp 140.114.229.129:/home/bob/Desktop/wordpress-backup .

當然, sshd或是iptables那些我早就設定好了^^