分類: linux

2014/12/11

使用SSH Private key 產生 Public key

本篇重點是要記錄使用SSH Private key 產生 Public key
但是我還是紀錄一些key相關的東西,以免以後忘光光

在使用Amazon EC2時都會給你一組private key (副檔名是pem)
所以ssh到ec2時就不需要輸入密碼,應該說ec2也不允許你輸入密碼登入
連接方式是:

ssh -i "你的key.pem" "使用者"@"ec2的public ip"

但是這樣要連到主機每次都要打一長串實在太麻煩
我想要用我常用的方式 ssh [email protected]來登入
所以我要把我本機的public key丟到ec2的機器

ssh-copy-id -i ~/.ssh/id_rsa.pub "使用者"@"ec2的public ip"

沒產生過ssh key的話,執行ssh-keygen

ec2上面每個region並不會分享key pair,即使同帳號
那更不用講不同帳號了
但每個帳號,每個region都要產生一組key pair會不會太麻煩
而且帳號很多個,又在很多region又開機器
那key pair會多到不知道怎麼整理,要用的時候會找到發瘋
所以我的使用方式就是每個key pair都用同一個XD
當然這是比較不安全的,如果你的ec2上面放重要的資料,請自行斟酌
要把key pair import到ec2上面需要的是public key
但ec2讓我們下載的是private key,是無法直接import的
這時候就需要自己將pirate key產生public key
windows可以用puttygen來產生,圖形介面就不用在教學了
linux底下可以用這行指令產生,-y就是產生public key

ssh-keygen -y -f "你的key.pem" > "你的public key.副檔名隨便"
2014/07/02

解決 ip_conntrack: table full 的方法

這幾天我們的DNS server出現一整串下面這個訊息:

ip_conntrack: table full, dropping packet.

後來google才知道, Linux NAT 的 ip_conntrack 模組會記錄 tcp 通訊協定的 established connection 記錄, 而且預設 timeout 時間長達五天 (432000 秒), 因此只要 LAN 中有人使用 P2P 軟體 (如: eDonkey、BT…) 就容易發生這種問題.

首先確定你的linux有沒有載入模組

[[email protected] ~]# lsmod |grep ip_conn
ip_conntrack           53409  0 
nfnetlink              10713  1 ip_conntrack

(繼續閱讀…)

2013/02/08

樹莓派(Raspberry pi)安裝

昨天剛拿到樹莓派,這小電腦真的很神,這麼小一台竟然可以撥1080p影片
有多小? 請看照片,上面是一般菸盒,他就跟菸盒一樣大而已
IMG_1035
我的目標就是把他放在電視旁邊當播放器與上網機
不過他的CPU效能真的不強
我在 i5-3470 3.20GHz上VM跑圓周率只需要7秒
在樹莓派上面卻要跑上1分12秒
(繼續閱讀…)

2013/02/01

讓Linux使用者登入在chroot底下

之前只會把application關在chroot底下
但是卻不知道怎麼把使用者關住
實際了解之後才發現要把使用者關住
並不是跟application一樣設定就可以了
雖然是類似但是卻多了很多東西要設定
還是記錄一下比較安全,不然我應該很快就忘了…
(繼續閱讀…)

2013/01/12

linux不能compile? 不能make?

蠻常遇到的,紀錄一下

不能compile?

# yum -y install gcc gcc-c++ libgcrypt* install crypt*

不能make?

# yum -y install gcc automake autoconf libtool make
2013/01/10

iptales執行”–set mark”時出現error

這是之前在裝Openvpn遇到的問題,lsmod所有openvpn需要的東西都齊全
當初不知道是哪一個指令出問題,所以試了很久
試到最後發現只要iptables執行MARK這個指令,他就會出現error

# iptables -t mangle -A POSTROUTING -o eth0 -d 192.168.5.2 -j MARK --set-mark 22
iptables: Unknown error 18446744073709551615

但是發現歸發現卻不知道該怎麼解決…
所以只好先把iptables版本換掉試試看,結果換版本就OK了…..(三小!)
不過經過google之後發現所有for Centos5的rpm都是iptables 1.3.5版,用yum自動安裝也是1.3.5,update也沒用
所以如果要裝新版就要自己編譯安裝

iptables安裝:
到ftp://ftp.netfilter.org/pub/iptables/ 下載新一點的版本,我是裝1.4.6

# ./configure
# make
# make install

確定裝好之後,我們就要把系統中的就版替換掉
先把iptables停掉

# /etc/rc.d/init.d/iptables stop

用/usr/local/sbin/中的iptables(新版本) 替換/sbin/iptables(老版本)
基本上可以用自己的方法做,就把安裝好的資料夾整個copy過去就好了
不過我是copy這三個檔案而已

# cp /usr/local/sbin/iptables /sbin/
# cp /usr/local/sbin/iptables-restore /sbin/
# cp /usr/local/sbin/iptables-save /sbin/

copy完之後check一下版本

# iptables -V
iptables v1.4.6
2013/01/05

linux安裝套件出現缺少libcrypto-so-6

這個幾乎我裝甚麼都會出現,不知道為什麼linux不直接內建= =
libcrypto.so.6可以安裝openssl後取得,如系統中沒有openssl,就

# yum -y install openssl

安裝即可
如果系統告訴你已經有openssl了,但是還是缺少libcrypto.so.6,那就是系統的openssl太新了
直接到網路上下載0.98版的openssl rpm強制安裝到系統就可以了,正常安裝的話系統會告訴你系統版本比你要裝的新,所以不幫你裝
強制安裝指令:

# rpm -ivh xxxxxxxxxx.rpm --nodeps --force


這樣缺少lib的問題應該就可以解決了。