在 Mac 建立新帳號,並且開通 ssh 權限

為什麼我會需要在 Mac 建立新帳號呢,原因就是最近用 Golang 寫了 SCP 工具,此工具支援 Password 或 SSH Public Key 登入,我又不想拿個人帳號寫在 Testing 檔案內,所以才會想到在 Mac 建立一個帳號好了,本篇就是教大家如何在 Mac 建立新帳號,並且開通 SSH 權限。

[Read More]

SSH agent forwarding 教學

2016.11.13 Update: SSH Agent Forwarding 有安全性問題,請用 ProxyCommand 取代,請參考 SSH Agent Forwarding considered harmful Screen Shot 2016-10-05 at 9.26.13 AM

SSH agent forwarding 可以讓開發者將 Local 端的 SSH Key Pair 帶到另外一台機器進行傳送,也就是說你不用將 SSH Key 複製到遠端 Server 再進行跳板動作,原本在 AWS 維護多台 EC2 主機,都會固定有一台跳板機,大家都把自己需要登入遠端機器的 SSH Key 複製到跳板機,這做法其實沒有很安全,又需要多下一個指令進行跳板。

個人電腦 -—> EC2 跳板機 -—> EC2 Server

大家都會把 Key Pair 存放到跳板機,安全性堪憂,只要這台主機被 Hack,或者是內部員工登入,拿別人的 Key Pair 登入其它主機,不就可以搞破壞?所以此篇教學主要教大家如何設定 SSH agent forwarding,讓憑證只存放在自己電腦,而不需上傳到 EC2 跳板機。這樣跳板機就真的只是跳板機,不需要存放任何憑證資料,每小時設定清空 Ubuntu User 家目錄,避免內部員工放個人資料或憑證,提升主機安全性。

[Read More]
AWS  devops  SSH 

OpenSSH 安全性漏洞 CVE-2016-0777 and CVE-2016-0778

openssh

OpenSSH 今日公佈 Client Bug 漏洞 CVE-2016-0777 and CVE-2016-0778,發生原因是 SSH Clinet 跟 Server 溝通時,新功能 roaming 造成傳輸過程被惡意程式破解,影響的 OpenSSH 版本為 5.4 - 7.1. 大家快看看自己是否為這版本區間。此問題會發生在 SSH Client 而不是 Server 端,所以 Linux FreeBSDMacOS 都需要升級 OpenSSH,如果你是在 Windows 用 Putty 則不受影響。

[Read More]

Ruby Deploy With Capistrano 碰到 SSH Connection Closed

CapistranoLogo

Ruby 開發環境最常用的 Deploy 工具就是 Capistrano,讓開發者可以快速部署程式碼,在部署進行中,由於大量的 js 及 css 需要處理,所以花最長的時間就是 assets:precompile,執行 cap deploy 就會發現卡在底下錯誤訊息

** [whenever:update_crontab] exception while rolling back: Net::SSH::Disconnect, connection closed by remote host *** [deploy:update_code] rolling back * executing “rm -rf /home/deploy/nami/releases/20150317135422; true” servers: [“xxxxx.tw”] ** [deploy:update_code] exception while rolling back: Net::SSH::Disconnect, connection closed by remote host

[Read More]

Geany 編輯器搭配 sshfs 參數注意事項

Geany 是一套我覺得在 Linux 作業系統底下蠻簡易及輕量的程式編輯器,之前撰寫一篇 Linux 程式開發編輯器 Geany + Fuse 遠端掛載 簡易介紹如何使用 Fuse,這次發現一個小問題,就是掛載要儲存檔案時候出現底下錯誤訊息 Error renaming temporary file: Operation not permitted. The file on disk may now be truncated! 此錯誤訊息發生在用 Fuse 掛載遠端系統所造成,原先掛載指令如下 sshfs appleboy@xxxx.com.tw:/home/appleboy /home/git/CN -p 22 -o reconnect,sshfs_sync -o uid=1000,gid=1000 我們只需要另外加上 workaround=rename flag 及可以解決此問題 sshfs appleboy@www.cn.ee.ccu.edu.tw:/home/appleboy /home/git/CN -p 22 -o reconnect,sshfs_sync -o uid=1000,gid=1000 -o workaround=rename 測試環境為 Ubuntu 10. [Read More]

Linux 程式開發編輯器 Geany + Fuse 遠端掛載

自己買的筆電灌上了 Ubuntu 作業系統,Linux 系統好處多多,指令自己也熟悉,想架什麼站都可以,但是最主要還是要找一套程式開發編輯器,網路上看了大部份文章,我決定用 Geany 這套免費的編輯器,在 Windows XP 底下我則是使用 PSPad 搭配內建的 FTP 功能遠端編輯寫程式,但是 Geany 並沒有支援 FTP 功能,可以詳細看到官方網站 Q&A,官方建議搭配 Fuse 或 LUFS,這樣並不只是 Geany 可以使用,其他 Application 也可以任意使用了。 在介紹 Fuse 之前可以先參考過去寫的一篇教學: [SSHFS] 好用的 SSH Filesystem fusefs-sshfs in FreeBSD or Linux,裡面分享了 FreeBSD 跟 Linux 底下的 tarball 安裝方式,當然現階段 Ubuntu 安裝就很容易了,透過 Apt 管理的方式安裝: $ apt-cache search sshfs sshfs - filesystem client based on SSH File Transfer Protocol sshfs-dbg - filesystem client based on SSH File Transfer Protocol (with debbuging symbols) sbackup-plugins-fuse - Simple Backup Suite FUSE plugins $ apt-get install sshfs 安裝完成,透過底下指令把遠端資料夾 mount 過來吧。 $ mkdir /home/appleboy/tmp $ sshfs -p 22 appleboy@XXX. [Read More]

[FreeBSD] DenyHosts 設定在 hosts.allow 注意事項

DenyHosts 是一套用 Python 跟 shell script 寫出來的 open source base on Linux or FreeBSD (/var/log/secure on Redhat, /var/log/auth.log on Mandrake, FreeBSD, etc…),用來阻擋 SSH Server 被攻擊,之前寫一篇 FreeBSD 安裝設定教學,有一點沒有注意到,就是打開 /etc/hosts.allow,注意要把 ALL : ALL : allow 放到最後一行,跟 iptables 設定原理是一樣的,會從第一條規則開始比對,如果比對成功,下面的 rule 就會略過比對了,參考英文說明: Start by allowing everything (this prevents the rest of the file from working, so remove it when you need protection). The rules here work on a “First match wins” basis. /etc/hosts.deny 已經被 FreeBSD 棄用,所以必須把 allow 跟 deny 的 rule 都寫到 hosts. [Read More]

[FreeBSD]利用 DenyHosts 軟體擋掉暴力破解 ssh 的使用者

不管是架設好 Linux 跟 FreeBSD 通常都會有國外的 hacker 來 try 機器的 SSH 帳號密碼,我想這是很正常的,網路上也提供很多方法來分析 Log 檔,FreeBSD:/var/log/auth.log,我可以分析檔案,然後再利用 firewall like ipfw or pf 的方式來達到,或者是利用寫到 /etc/hosts.deny 來達到 Block 的功能,網路上有很多工具可以用,例如 DenyHostssshguard 或者是 sshit,可以參考我之前寫的一篇利用 sshit 來達到阻擋 ssh 使用者,然而今天來介紹一下 DenyHosts 再 FreeBSD 底下如何設定,還蠻方便的。 首先利用 ports 安裝,DenyHosts 是利用 python 的程式語言寫出來的:

Port:   denyhosts-2.6_2
Path:   /usr/ports/security/denyhosts
Info:   Script to thwart ssh attacks
Maint:  janos.mohacsi@bsd.hu
B-deps: python25-2.5.2_3
R-deps: python25-2.5.2_3
WWW:    http://denyhosts.sourceforge.net/

/* 利用 ports 安裝 */
cd /usr/ports/security/denyhosts; make install clean
[Read More]

[SSHFS] 好用的 SSH Filesystem fusefs-sshfs in FreeBSD or Linux

今天在 ptt Linux 連線版文章看到有人問說,如何傳一檔案到其他的 linux 機器,有人推了一個軟體,我覺得相當不錯,就拿來玩看看了,這軟體就是 sshfs 這是一套可以直接掛載遠端機器目錄的軟體,走 ssh 協定,剛剛安裝了一下,發覺還蠻好用的,我在 LinuxFreeBSD 上面都安裝好了,來紀錄一下步驟。 首先是安裝步驟 For FreeBSD,直接利用 ports 安裝即可:

#
# ports 安裝
#
# Port:   fusefs-sshfs-1.8
# Path:   /usr/ports/sysutils/fusefs-sshfs
# Info:   Mount remote directories over ssh
# Maint:  amistry@am-productions.biz
# pkg-config-0.22_1
# WWW:    http://sourceforge.net/projects/fuse/

cd /usr/ports/sysutils/fusefs-sshfs; make install clean
[Read More]

[筆記] ssh Tunnel 運用在 Linux and Windows FireFox

今天在看 gslin 部落格的一篇文章:穿越公司的 FireWall,看完之後我覺得相當不錯,可以解決我想要的 forwarding 的問題,以及繞過防火牆的機制,剛剛自己測試一下,發現還蠻好用的,其實利用這個方式還可以遠端管理很多伺服器,如:Mysql 伺服器…. SSH Tunnel必須建立於一個SSH連線上,它可以讓我們穿透防火牆,建立一個安全加密的傳輸。 例如:我們現在要透過 A主機去對 smtp 或者是 http 做連接的動作,那我們就必須先建立一個到A主機的SSH連線,然後在透過它建立 Tunnel 我們會使用到的putty和plink都可以在 這裡下載, 不過我更喜歡pietty,由piaip長輩製作。

[Read More]