• slider image 221
:::

3-4-2 遠端搖控

遠端登出、關機

  • 安裝 RSH

學生端

sudo apt-get install  xinetd rsh-client rsh-server

 

/etc/xinetd.d/rsh (自已建立),重跑 xinetd
 

service shell
{
disable                 = no
socket_type             = stream
wait                    = no
user                    = root
log_on_success          += USERID
log_on_failure          += USERID
server                  = /usr/sbin/in.rshd
}

 

 

學生機器允許搖控端教師主機的 IP
/etc/hosts.equiv

192.168.1.100 +

或在學生機中控制帳號目錄下

.rhosts

192.168.1.100

 

#加入 教師使用帳號 可以不用密碼就可以執行的原需要 sudo ...

sudo vim /etc/sudoers

teacher ALL=(ALL) NOPASSWD: ALL

教師端

sudo apt-get install  rsh-client

#測試顯示目錄
rsh 192.168.1.131   ls
#直接做關機 (在學生非登入的狀態下,也可以關機)
rsh 192.168.1.131   sudo shutdown -h now &
#直接重新開機
rsh 192.168.1.131   sudo reboot &

#xwindows 登出
rsh 192.168.1.131 sudo restart lightdm &

#ubuntu 16.04 需改用以下方式登出
rsh 192.168.1.131 sudo service  lightdm restart 

# ubuntu 18.04 

rsh 192.168.1.131 sudo service  gdm  restart 

#直接關 firefox
rsh 192.168.1.131 sudo pkill -9 firefox 

 

#檔案傳送(注意:遠端的目錄權限是否可以允許現在帳號寫入)
rcp  /home/tnc/fn.txt 192.168.1.131:/tmp/.

 

安裝 sshd 無需再輸入密碼

  • 安裝套件

sudo apt-get install openssh-server

windows 

在教師的windows 系統中

puttygen.exe 產生公鑰、私鑰
公鑰傳上被控制端。
ssh-keygen -i -f 公鑰檔 >> ~/.ssh/authorized_keys
注意權限 .ssh 700
authorized_keys 600

 

  • 純命令列範例

plink -i 私鑰檔  user@hostname  ls /home/user

 

下載 putty等軟體

linux 教師主機

  • ssh-keygen
在 ~/.ssh/ 中產生

id_rsa.pub:公開金鑰
id_rsa:私密金鑰(private key)

把公鑰加入到學生機器

ssh-copy-id username@remote_host

以下為手動方式:

  • 在被控端(學生機器)把 pub key 加入

cat >> ~/.ssh/authorized_keys' < ~/.ssh/id_rsa.pub

 

指令範例:(在教師主機下指令,查看學生機器目錄)

ssh user@hostname  ls /home/user/

 

ClusterSSH 同管理多台學生機

可以同時對多台學生機進行 SSH 指令。

  • sudo apt-get install clusterssh
  • 參數設定,指定群組、機器名

vi /etc/clusters   ( 或個人 .csshrc)


clusters = line1  line2  all st01 st02 st11 st12
line1= st01 st02
line2= st11 st12
all = line1 lin2
st01= 192.168.1.101
st02= 192.168.1.102

  • 執行的方式

cssh –l 登入帳號  all
cssh -l user st01 st02 st03

 

  • 輸入指令時只能鍵盤輸入,不能貼上。

 

 

遠端開機

  • 主機 Bios 要設定 Wake On LAN

ubuntu 中可安裝 wakeonlan 套件,指令 例:

wakeonlan 01:23:45:67:89:ab
wakeonlan -p 7 01:23:45:67:89:ab

 

 

 

  • 在 windows 關機後可以使用網路喚醒,但如果遠端是 linux 系統,關機後就無法再喚醒。

解決的方法:

  • #加入套件
  • sudo apt-get install ethtool
 
  • 寫的程式,要指定網卡可以支援 wol
sudo vi /etc/init.d/wol.sh

#!/bin/bash
#使用的網路卡 enp1s0f0 eth0  or eth1
ethtool -s enp1s0f0 wol g  
exit

  • 設為執行權限
sudo chmod a+x /etc/init.d/wol.sh
  • 在開機時會自動執行這個程式(16.04 以前)
sudo update-rc.d wol.sh defaults
 
 
18.04 開機執行
sudo vi /etc/systemd/system/startup.service 
 
[Unit]
Description=Job that runs your user script
[Service]
ExecStart=/etc/init.d/wol.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target


sudo chmod a+x /etc/systemd/system/startup.service 

開機時啟動
sudo systemctl daemon-reload
sudo systemctl enable startup.service
 
 
 

安裝軟體

rsh 120.116.25.1  sudo dpkg -i /home/nfs_work/class4/300/scratch-desktop_3.6.0_amd64.deb


站內搜尋