顯示具有 linux 標籤的文章。 顯示所有文章
顯示具有 linux 標籤的文章。 顯示所有文章

2026-04-15

使用 ssh-copy-it 管理 ssh 登入免密碼方式

 利用 tailscale 把多台機器串接在同一個網域內. 所以, 可以利用 ssh 從我的工作機連接到遠端的工作機. 使用 ssh 連線, 需要記住帳號密碼, 研究後使用 部署金鑰 方式來免除一些輸入. 

整個概念是 

  • 要在 local 先產生相關的 private and public key , 並使用 ssh-copy-it 將公鑰上傳到 remote 
  • 在 local 維護好相對應的 .ssh/config , 這樣才可以簡單連線到 remote 
  • 透過 .ssh/conf.d/work , 把一些 host config 編輯分開. 

以下是可行步驟

1. 快速部署金鑰
使用 ssh-copy-id 將公鑰寫入遠端主機,達成免密碼登入。
bash
# 基本格式:-i 指定公鑰,-p 指定連接埠
ssh-copy-id -i ~/.ssh/your_key.pub -p 22 user@hostname
請謹慎使用程式碼。

2. 結構化設定:使用 Include 拆分檔案
當主機變多時,建議將設定檔依專案分類存放於 conf.d/ 資料夾。
步驟 A:建立資料夾與子設定檔
  1. mkdir -p ~/.ssh/conf.d
  2. 建立新檔案 ~/.ssh/conf.d/work,內容如下:
    text
    Host my-server
        HostName 1.2.3.4
        User admin
        IdentityFile ~/.ssh/id_ed25519_work
    
    請謹慎使用程式碼。
步驟 B:修改主設定檔 ~/.ssh/config
在主檔案最頂端加入載入指令:
text
Include conf.d/*

# 其他通用設定...
請謹慎使用程式碼。

3. 自動化驗證設定 (免手動檢查)
修改完設定後,無需連線即可驗證 SSH 是否正確抓取 conf.d/ 內的參數。
指令:一次提取關鍵設定
執行以下指令,直接查看該別名(Host)最終套用的使用者、IP 與金鑰:
bash
ssh -G my-server | grep -E "^user |^hostname |^identityfile "
請謹慎使用程式碼。
指令:自動化成功判定 (Script 用)
如果你想用指令直接判斷某把金鑰是否生效,可以使用這段邏輯:
bash
ssh -G my-server | grep -q "identityfile ~/.ssh/id_ed25519_work" && echo "✅ 讀取成功" || echo "❌ 讀取失敗,請檢查路徑與權限"
請謹慎使用程式碼。

4. 必要的權限修復
如果設定無效,通常是權限過大導致 SSH 忽略該檔案。請執行:
bash
# 確保資料夾與檔案權限正確
chmod 700 ~/.ssh ~/.ssh/conf.d
chmod 600 ~/.ssh/config ~/.ssh/conf.d/*
請謹慎使用程式碼。

2014-03-10

[Linux] sudo 相關設定

如何允許一般使用者可以有sudo 權限

chmod 770 /etc/sudoers
vi /etc/sudoers
chmod 440 /etc/sudoers

/etc/sudoers 變更中, 可以針對單一User 也可以使用Group 設定

1. 使用一群Group
# Allow members of group sudo to execute any command
%sudo    ALL=(ALL:ALL) ALL

2. 變更單一User
username ALL=(ALL:ALL)  ALL

2014-01-24

[Linux] SSH Client 相關設定

已經習慣使用 Mac 作為工作平台.需要管理Linux Server.
目前多半使用 ssh 做連線的工具, 這兩天某Server 重新安裝, ssh key 有改過沒法進去.
網路上找了一下方法.

 1. 刪掉 ~/.ssh/known_hosts 裡頭相對應的IP or Server Name
 2. 刪掉 ~/.ssh/known_hosts 整個檔案. 


找尋過程中, 發現可以將 Server 相關設定寫好, 不用每次敲server name and username
vi ~/.ssh/config
======================
Host $SessionName
    Hostname $ConnectionName
    User $username

======================

$SessionName 你可以記住的代稱
$ConnectionName 連線的主機名稱或IP
$username Login Name




參考資料
1. http://blog.xuite.net/yctseng/notes/24912310-ssh
2. 使用SSH CONFIG

2013-09-11

[Linux] 使用 Tar 備份超過30天的指令

find . -mtime +30 | xargs tar -cvf mar_03.tar

Tar file and remove file
find . -mtime +30 | xargs tar -cvf mar_03.tar --remove-files

2013-08-05

Rockchip RK3066 vs Allwinner A20

手上有一隻 友旺 A08 Android Dongle. 最近在測試 Adobe Connect 時, 發現當 啓用Camra 功能時, 會整個頓在那邊無法使用. 但是在Skype 上面, A08 又整個很順. 想說是否找另外一個替代產品來使用看看.
在台灣的ruten 上面, 看到一個 Cubiebox A20 的mini arm pc. 想要買來試試看, 但是又怕買來的效能比不上原來的A08 不就是白費工夫跟多花錢.  先查了一下規格.

A08 使用 RockChip : RK3066
Cubiebox A20 使用 Allwinner : A20

網路上查到:
1. How they compare – Rockchip RK3066 vs Allwinner A20 
2. Dual-core ARM battle: RockChip’s RK3168 vs Allwinner’s A20 

在第一篇中, 最後結論是 RK3066 還是dual-core 的Top, 即使 A20 使用 較新的 Cortex- A7 架構. 整體來說, RK3066 還是比較強. A20 好處是在於相容A10 的模組. 

所以, 結論是 A08 就繼續用下去吧. 
我是比較想要買下面這一個產品. ODROID-U2 別人評比效能接近 core 2 duo @1200Mhz.另外最近新出的產品 ODROID-XU 有錢買更好.

2012-04-16

[Linux] Linux and Java Broadcast connection

最近寫 Linux server and Java Client .  之前, 都只能用 192.168.1.255 的方式.
目前改寫測試, 已經可以運用 255.255.255.255.
Linux Server : 可以直接註冊  255.255.255.255:9999 bind
Java Client :  DatagramSocket  需指定會傳送 Broadcast 的 IP.
與上一版的差別, 在於 JavaClient 需要指定 出口 IP

2012-03-24

char on Arm-Linux

最近在寫 Linux socket Server. 需要從  Java 傳送 資料到Linux Server .
Linux 用 *char 來接收. Java 得用byte  方式傳送才有辦法一致.
當開發環境在 pc Linux 時, default is signed char.
當程式轉換到 Arm-Linux 時, 他卻是跑出 unsigned char.
所以, 當你需要 signed char on Arm-Linux , 就是直接宣告為 signed char.
否則, Arm-Linux default char is unsigned char.

2009-07-23

在ssh consle 下顯示中文


  1. 安裝與設定locale

    apt-get install locales
    dpkg-reconfigure locales
    cat /etc/locales.gen

    dpkg-reconfigure 選單裡面一共選了

    en_US ISO-8859-1
    en_US.UTF-8 UTF-8
    zh_TW BIG5
    zh_TW.UTF-8 UTF-8

    最後 default 部份選用 zh_TW.UTF-8

    檢查 /etc/locales.gen 裡面的設定是否正確.



  2. 編輯 ~/.bashrc

    export LC_ALL=zh_TW.UTF-8
    export LANG=zh_TW.UTF-8

    將上面兩行新增進 ~/.bashrc


  3. 設定ssh client 使用 UTF-8 連線

2009-07-01

修改 kurobox pro source.list for debian etch

按照KURO-BOX/PRO 完整安裝改機的講法我已經把 kurobox pro 更新到 debian etch. 不過, 裡面的 /etc/apt/source.list 已經過時找不到相關的apt-get 可以用的 source list.
[分享] 老調重彈 - 玄箱(追加 console 連線心得、追加作業系統使用心得)這一篇裡面有說明如何新增自己 source.list 按照上面的講法.
vi /etc/apt/source.list

deb http://security.debian.org/ oldstable/updates main contrib non-free
deb ftp://opensource.nchc.org.tw/debian/ oldstable main contrib non-free
deb ftp://debian.linux.org.tw/debian/ oldstable main contrib non-free
deb-src ftp://opensource.nchc.org.tw/debian/ oldstable main contrib non-free
deb-src ftp://debian.linux.org.tw/debian/ oldstable main contrib non-free

apt-get update
apt-get upgrade
apt-get dist-upgrade
就可以繼續進行相關的 安裝

2009-06-15

完美不關機紀錄 破功

www.2twn.com 這台用 老舊電腦灌 gentoo linux 已經創下 800天不關機的紀錄.
就在今天停電一個小時給破功了. 到了晚上回家, 看到電源已經被關閉, 詢問下才知道 今天停電一小時. 就這樣 持續完美的紀錄沒有辦法繼續下去了.

2007-09-09

Apache with SSL 設定篇

設定apache ssl 主要工作有下面:
1. 產生 SSL keys files.
2. 設定 apache conf with ssl.

1. 產生SSL keys files.
如果有公開的信任網站的認證檔, 就可以直接使用. 如果像我沒有的就自己產生. 先建立一個目錄存放ssl files.

cd ${Apache_conf}
mkdir ssl
cd ssl
openssl genrsa -out server.key 1024
openssl rsa -in server.key -out server.pem
openssl req -new -key server.pem -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.pem -out server.crt


2. 設定 apache conf with ssl.
a. 修改 /etc/apache2/modules.d/41_mod_ssl.default-vhost.conf

SSLCertificateFile /etc/apache2/ssl/server.crt
SSLCertificateKeyFile /etc/apache2/ssl/server.key

b. 修改 /etc/conf.d/apache2
add
"-D SSL -D SSL_DEFAULT_VHOST" to APACHE2_OPTS


參考資料

1. Apache Modules mod ssl - Gentoo Linux wiki

2007-06-05

Linkstation 改機 2007-06-05

今天拿到leo 下載的 linkstation 1.61 improved EM telnet 版本.
1. 把該檔案解開放在一個目錄裡面.
2. 執行 HD-HGLAN FWUpdate.exe
3. 執行後會建議你關掉window 防火牆. (一定要關掉不然會出甚麼事情,不知道)
4. 開始更新, 更新完後會有訊息.
5. 執行telnet, 就可以 直接進入 linkstation console model.

裝完了上面的版本, 才發現他沒有一些工具軟體.
所以,就安裝了 openlink-0.51b 版本. 不過update 程式會檢查相關的version, 都會顯示不需要再更新韌體. 所以, 是了好多方式, 最後用欺騙的方式, 就是在openlink解開的目錄裡面有一個linkstation_version.txt 把裡面的,VERSION=1.61改成這樣就可以更新韌體, 更新後linkstation裡面的韌體編號還是1.45. 結論就是, linkstation_version.txt 是安裝參考用的.