2016年12月26日 星期一

[docker] 安裝 docker

Ubuntu 16.04

*請注意以下做法僅適用於 16.04 版。

  1. 安裝 docker:
    sudo apt-get update
    sudo apt-get install -y apt-transport-https ca-certificates
    sudo apt-key adv \
                   --keyserver hkp://ha.pool.sks-keyservers.net:80 \
                   --recv-keys 58118E89F3A912897C070ADBF76221572C52609D
    echo -e "deb https://apt.dockerproject.org/repo ubuntu-xenial main"\
         | sudo tee /etc/apt/sources.list.d/docker.list
    sudo apt-get update
    sudo apt-get install -y linux-image-extra-$(uname -r) linux-image-extra-virtual
    sudo apt-get install -y docker-engine
    

  2. 啟動 docker 服務:
    sudo systemctl start docker.service
    

  3. 測試或查看 docker 狀態:
    sudo apt-cache policy docker-engine
    sudo systemctl start docker.service
    sudo docker run hello-world
    

  4. 將 docker 服務設為開機啟動:
    sudo systemctl start docker.service
    

2016年10月22日 星期六

apt 執行小技巧收集

(1) 在執行 apt-get update 出現以下訊息時該如何處理?
The following packages were automatically installed and are no longer required:
(答)
sudo apt-get autoremove


(2) 如何查詢套裝軟體資訊?
(答)
  • 簡單列示:
apt list <package_name>

  • 完整資訊:
apt show <package_name>

  • 查詢套件:


apt search <package_name_pattern>
apt-cache search <package_name_pattern>

2016年8月4日 星期四

在 Fedora 將新使用者加入 sudo

新增一檔案至 /etc/sudoers.d,可取名為:
/etc/sudoers.d/superusers (多人)

/etc/sudoers.d/<account> (單一使用者)

※ 以上並非既定規則,只是個人習慣。

然後在檔案裡新增以下內容:

<account>   ALL=(ALL)       ALL


SSH 登入免檢查指紋

ssh-keygen -R <ssh.server.ip.address> ;\ 
 ssh -o UserKnownHostsFile=/dev/null \   
 -o StrictHostKeyChecking=no \           
 <account>@<ssh.server.ip.address> 

2016年7月29日 星期五

SSH 免密碼登入

產生 key-pair

$ ssh-keygen
Generating 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.1peer_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 peer_account@192.168.1.1

安全設定

有時候你會發現以上步驟做完了還是無法免密碼登入,可以檢查下面的設定:
1、改變 .ssh 下面檔案的屬性設定:
  chmod 700 ~/.ssh
  chmod 600 ~/.ssh/authorized_keys
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
mysqladmin -u root -p<舊密碼> password ''



  • 方法二:在 MySQL 下 SET 指令
SET PASSWORD FOR root@localhost=PASSWORD('');

在 Ubuntu 安裝 Oracle JDK 7/8

Oracle JDK 8

安裝套件

sudo add-apt-repository ppa:webupd8team/java
sudo 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/java
sudo apt-get update
sudo apt-get install oracle-java7-installer


設定環境變數

sudo update-java-alternatives -s java-7-oracle
sudo apt-get install oracle-java7-set-default

2016年7月27日 星期三

不重灌,使用 dnf 升級為 Fedora 24 的方法

<<準備工作>> 

  1. 備份個人資料。
  2. 先作例行更新。
dnf upgrade --refresh

※更新完,建議重開機。 

下載系統升級套件

dnf install dnf-plugin-system-upgrade


dnf system-upgrade download --refresh --releasever=24

※24代表要升級目標版本,至本文最近更新日為止,Fedora 最新版為24。

進行系統升級

dnf system-upgrade reboot

※自動重開機,在開機時進行升級。