新增一檔案至 /etc/sudoers.d,可取名為:
/etc/sudoers.d/superusers (多人)
或
/etc/sudoers.d/<account> (單一使用者)
※ 以上並非既定規則,只是個人習慣。
然後在檔案裡新增以下內容:
<account> ALL=(ALL) ALL
2016年8月4日 星期四
SSH 登入免檢查指紋
ssh-keygen -R <ssh.server.ip.address> ;\
ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
<account>@<ssh.server.ip.address>
ssh -o UserKnownHostsFile=/dev/null \
-o StrictHostKeyChecking=no \
<account>@<ssh.server.ip.address>
2016年7月29日 星期五
SSH 免密碼登入
產生 key-pair
$ ssh-keygenGenerating public/private rsa key pair.
Enter file in which to save the key (/home/<my_home>/.ssh/id_rsa): <= 按enter
Enter passphrase (empty for no passphrase): <= 按enter
Enter same passphrase again: <= 按enter
Your identification has been saved in /home/<my_home>/.ssh/id_rsa.
Your public key has been saved in /home/<my_home>/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:hRybtdk8kAYPTGWRA6lz9lW/uWhM+Vzzex939UJgp64 cykuo@ubuntu
The key's randomart image is:
+---[RSA 2048]----+
| s-x-f |
| .kk.* . |
| .=.=.d.f. |
| = =. ..* .|
| +R. s. . -|
| ---** * -+|
| --++ * = +.+|
| s =*. *==+|
| E - ++|
+----[SHA256]-----+
※ 此動作將在家目錄的 .ssh 目錄底下(即~/.ssh)產生兩個檔:
| 私鑰(private key): | id_rsa |
| 公鑰(public key): | id_rsa.pub |
當然是私鑰保存在己方,公鑰丟到你想要連線的地方進行註冊囉!
要產生更高位元的 key,並加入註解,指令如下:
ssh-keygen -t rsa -b 4096 -C "my workstation"
使用 putty 產生私鑰
若要在 Windows 使用 SSH 登入,常常使用 putty。要免密碼登入比較麻煩,需要用 puttygen 先產生私鑰,然後轉換成 OpenSSH 格式的檔案(轉換時使用force new file format,這裡假設產生的檔名為 id_rsa.putty),然後將這個檔案 傳上 Linux 機器,再以下列指令進行轉換:
ssh-keygen -e -f id_rsa.putty > id_rsa_com.pub
ssh-keygen -i -f id_rsa_com.pub > id_rsa.pub
然後再以下面方式註冊即可。
註冊公鑰
複製公鑰檔案內容到對方的家目錄底下的 .ssh/authorized_keys,即完成註冊。例如:你要連線到 192.168.1.1 的 peer_account 帳號,即註冊到對方機器的 /home/peer_account/.ssh/authorized_keys ;若是要連線到 root 帳號,就註冊到 /root/.ssh/authorized_keys。
通常我使用 scp 將 id_rsa.pub ,然後在對方機器下以下的指令以完成註冊。
cat id_rsa.pub >> ~/.ssh/authorized_keys
通常 id_rsa.pub 與 authorized_keys 長的像這樣:
ssh-rsa AAAAB3NzsC1yc2EAGFFGFGDFGDFFJAC4idfDIh714g7GCssas4gpt714kgJ0wgIDIBBijY592BSasda4XSDaafFasQg0/yvjQSEnKKFq+sVQutpFX9dHI2HadadasdSDAsdasAaFAqTMgo1n+sObhIgSqOZSyASDAZasdaDASDASDAxasdTna+S4SDASD6tyuhfgaASDASDKasaasdasdASDASDAasdASDsDASDADasdsASDasdASDasdAsdAssp42pXiqw9YbpOf1zNqpASDsdASDaSFfzdFASDfdfdsdsd2u+wHJ8CzuASDQN8/PzCCASDQdAsDAS/XB8asdasDASDSDAsdasdaSDyl9F/EM+hXgDDws4r <my_home>@<my_server>
當然在 authorized_keys 檔可能會有更多行像這個東東,特別是公用的機器,所以記住,不要蓋掉或毀損別人註冊的公鑰哦!
另外,可用簡單的 ssh-copy-id 指令,簡單完成以上動作,範例如下:
另外,可用簡單的 ssh-copy-id 指令,簡單完成以上動作,範例如下:
ssh-copy-id peer_account@192.168.1.1
安全設定
有時候你會發現以上步驟做完了還是無法免密碼登入,可以檢查下面的設定:
1、改變 .ssh 下面檔案的屬性設定:
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys
2、檢查 selinux, /etc/sshd_config。
2、檢查 selinux, /etc/sshd_config。
這些情況我還沒遇上過,有遇到再來補充吧!
轉換 putty 所產生的 public keys
在 Windows 環境下可使用 puttygen.exe 產生 ssh key,分別存入 private(ppk檔)與 public key 檔之後,public 檔需要做轉換才能在匯入到 authorized_keys 中。指令如下,其中 my.pub 是 puttygen.exe 所存入的 public key 檔名(舉例)。
ssh-keygen -i -f my.pub > ~/.ssh/authorized_keys
轉換 putty 所產生的 private keys
在 Lunux 環境底下要轉換 puttygen.exe 產生ppk檔,有一點麻煩,還需要另外裝 putty-tools 才行,然後用下列的指令產生:
puttygen putty.ppk -O private-openssh -o id_rsa
注意!產生的檔案名稱要根據相關的演算法命名,上例是用 RSA 產生的私鑰,所以命名為 id_rsa,若命名為其他檔名有可能會出錯。
2016年7月28日 星期四
清除 MySQL 的 root 密碼
- 方法一:使用 mysqladmin
- 方法二:在 MySQL 下 SET 指令
SET PASSWORD FOR root@localhost=PASSWORD('');
在 Ubuntu 安裝 Oracle JDK 7/8
Oracle JDK 8
安裝套件
sudo add-apt-repository ppa:webupd8team/javasudo apt-get update
sudo apt-get install oracle-java8-installer
設定環境變數
sudo apt-get install oracle-java8-set-default或者可以以下互動式指令進行設定
cykuo@cyvm:~$ sudo update-alternatives --config java
There is 1 choice for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 auto mode
* 1 /usr/lib/jvm/java-8-oracle/jre/bin/java 1081 manual mode
Press <enter> to keep the current choice[*], or type selection number:
測試
cy@cyvm:~# java -version
java version "1.8.0_151"
Java(TM) SE Runtime Environment (build 1.8.0_151-b12)
Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
cy@cyvm:~# javac -version
javac 1.8.0_151
參考
Oracle JDK 7
安裝套件
sudo add-apt-repository ppa:webupd8team/javasudo apt-get update
sudo apt-get install oracle-java7-installer
設定環境變數
sudo update-java-alternatives -s java-7-oraclesudo apt-get install oracle-java7-set-default
2016年7月27日 星期三
不重灌,使用 dnf 升級為 Fedora 24 的方法
<<準備工作>>
- 備份個人資料。
- 先作例行更新。
dnf upgrade --refresh
※更新完,建議重開機。
※更新完,建議重開機。
下載系統升級套件
dnf install dnf-plugin-system-upgrade
dnf system-upgrade download --refresh --releasever=24
※24代表要升級目標版本,至本文最近更新日為止,Fedora 最新版為24。
進行系統升級
dnf system-upgrade reboot
※自動重開機,在開機時進行升級。
2012年6月13日 星期三
安裝 Debian 的特殊方法 - WAN 安裝篇
因為我實驗 Linux 多使用舊機器,硬體常常掛點,特別是現在的硬碟品質很差,二手的硬碟最多撐個一年多就掛了,所以常常需要重灌。而實驗的機器往往沒有掛光碟機,所以重灌時裝光碟機很麻煩(我可沒錢投資外接光碟),而且現在的 Linux 版本更新很快,燒一張安裝光碟不久之後就可能成了垃圾。
所以,我多半使用網路安裝的方式來進行系統的安裝。
網路安裝很簡單,只要到 Debian 網站 Official netinst images for the "stable" release 處下載 linux(核心)與 initrd.gz(啟始記憶體式碟片映像壓縮檔) ,放到 /boot 目錄(我通常會另外分割出一個磁碟分割區給 boot 目錄,所以下面檔案位置是根目錄),然後在 /boot/grub/grub.cfg 新增一個 menuentry 即可。
但是,這樣有一個明顯的缺點,因為首先你必須有一個舊的 Linux 系統在才行,若是全新安裝,那就要再另想方法了。過去我用過一種很笨的方法,就是先裝一個舊的 Linux 系統,選擇最簡安裝,再用上面所述方法安裝新的系統。
而且,若是安裝步驟進行到格式化 linux、initrd.gz 以及 grub 所在的磁碟分割區(通常是/boot),之後若是安裝有什麼差錯要重來一遍的話,那就前功盡棄,得重來一遍了。或許可以做 dual boot 來解決,但那也不算是什麼高明的方法(所以我也沒有實驗過,呵!呵!)。
後來,學會使用 grub4dos,就方便許多,因為理論上(目前未曾實作過)安裝 DOS 系統畢竟比安裝一個 Linux 系統快了許多了。而此法也能應用在一種常見的狀況:也就是在 Windows 系統存在的情況下,可以方便地只用硬碟與網路就能安裝 Debian,而不需要下載一龐大的 ISO 檔,然後再燒錄光碟片,然後再安裝 Debian 系統。若是安裝失敗,只要不是誤刪了 Windows 分區,不會花費太多功夫回來補救。
當然這種方法不一定是最好的,學習 Linux 的驚奇就是這樣,有各式各樣的方法可以來解決各式各樣的問題。 我在 "安裝 Debian 的特殊方法 - 網路開機(netboot)篇" 裡也介紹了一種方法,以後還會有相關的研究陸續進行。
所以,我多半使用網路安裝的方式來進行系統的安裝。
網路安裝很簡單,只要到 Debian 網站 Official netinst images for the "stable" release 處下載 linux(核心)與 initrd.gz(啟始記憶體式碟片映像壓縮檔) ,放到 /boot 目錄(我通常會另外分割出一個磁碟分割區給 boot 目錄,所以下面檔案位置是根目錄),然後在 /boot/grub/grub.cfg 新增一個 menuentry 即可。
menuentry 'Install Debian' {
set root='(hd0,msdos1)'
linux /linux
set root='(hd0,msdos1)'
linux /linux
initrd /initrd.gz
}但是,這樣有一個明顯的缺點,因為首先你必須有一個舊的 Linux 系統在才行,若是全新安裝,那就要再另想方法了。過去我用過一種很笨的方法,就是先裝一個舊的 Linux 系統,選擇最簡安裝,再用上面所述方法安裝新的系統。
而且,若是安裝步驟進行到格式化 linux、initrd.gz 以及 grub 所在的磁碟分割區(通常是/boot),之後若是安裝有什麼差錯要重來一遍的話,那就前功盡棄,得重來一遍了。或許可以做 dual boot 來解決,但那也不算是什麼高明的方法(所以我也沒有實驗過,呵!呵!)。
後來,學會使用 grub4dos,就方便許多,因為理論上(目前未曾實作過)安裝 DOS 系統畢竟比安裝一個 Linux 系統快了許多了。而此法也能應用在一種常見的狀況:也就是在 Windows 系統存在的情況下,可以方便地只用硬碟與網路就能安裝 Debian,而不需要下載一龐大的 ISO 檔,然後再燒錄光碟片,然後再安裝 Debian 系統。若是安裝失敗,只要不是誤刪了 Windows 分區,不會花費太多功夫回來補救。
grub4dos 的簡易使用法(Windows XP):
1. 複製 grldr 到 Windows 系統開機磁區(通常為 C 碟)。
2. 新增 memu.lst 檔案,範例如下:
title Windows XP
find --set-root --ignore-floppies /ntldr
chainloader /ntldr
title find and load BOOTMGR of Windows VISTAroot (hd1,0)kernel /linuxinitrd /initrd.gz
當然這種方法不一定是最好的,學習 Linux 的驚奇就是這樣,有各式各樣的方法可以來解決各式各樣的問題。 我在 "安裝 Debian 的特殊方法 - 網路開機(netboot)篇" 裡也介紹了一種方法,以後還會有相關的研究陸續進行。
訂閱:
文章 (Atom)