 f05aefe351
			
		
	
	
		f05aefe351
		
			
		
	
	
	
	
		
			
			- Add a step to stop the script if a command error occurs using `appleboy/ssh-action@v1.0.3` - Configure SSH action with host, username, password, key, port, and other parameters - Add script to create a directory and list its contents Signed-off-by: Bo-Yi Wu <appleboy.tw@gmail.com>
		
			
				
	
	
		
			129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			129 lines
		
	
	
		
			3.8 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| name: openssh-server
 | |
| 
 | |
| on: [push]
 | |
| 
 | |
| jobs:
 | |
|   default-user-name-password:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Checkout code
 | |
|         uses: actions/checkout@v4
 | |
| 
 | |
|       - name: create new ssh server
 | |
|         run: |
 | |
|           docker run -d \
 | |
|           --name=openssh-server \
 | |
|           --hostname=openssh-server \
 | |
|           -p 2222:2222 \
 | |
|           -e SUDO_ACCESS=false \
 | |
|           -e PASSWORD_ACCESS=true  \
 | |
|           -e USER_PASSWORD=password  \
 | |
|           -e USER_NAME=linuxserver.io \
 | |
|           --restart unless-stopped \
 | |
|           lscr.io/linuxserver/openssh-server:latest
 | |
|           docker exec openssh-server sh -c "hostname -i" > ip.txt
 | |
|           echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
 | |
|           cat ip.txt >> $GITHUB_ENV
 | |
|           echo "EOF" >> $GITHUB_ENV
 | |
|           echo "======= container ip address ========="
 | |
|           cat ip.txt
 | |
|           echo "======================================"
 | |
|           sleep 2
 | |
| 
 | |
|       - name: ssh by username and password
 | |
|         uses: appleboy/ssh-action@v1.0.3
 | |
|         with:
 | |
|           host: ${{ env.REMOTE_HOST }}
 | |
|           username: linuxserver.io
 | |
|           password: password
 | |
|           port: 2222
 | |
|           script: whoami
 | |
| 
 | |
|   check-ssh-key:
 | |
|     runs-on: ubuntu-latest
 | |
|     steps:
 | |
|       - name: Checkout code
 | |
|         uses: actions/checkout@v4
 | |
| 
 | |
|       - name: add public key to env
 | |
|         run: |
 | |
|           echo "PUBLIC_KEY<<EOF" >> $GITHUB_ENV
 | |
|           cat testdata/.ssh/id_rsa.pub >> $GITHUB_ENV
 | |
|           echo "EOF" >> $GITHUB_ENV
 | |
|           echo "======= public key ========="
 | |
|           cat testdata/.ssh/id_rsa.pub
 | |
|           echo "============================"
 | |
|           echo "PRIVATE_KEY<<EOF" >> $GITHUB_ENV
 | |
|           cat testdata/.ssh/id_rsa >> $GITHUB_ENV
 | |
|           echo "EOF" >> $GITHUB_ENV
 | |
|           echo "======= private key ========="
 | |
|           cat testdata/.ssh/id_rsa
 | |
|           echo "============================"
 | |
| 
 | |
|       - name: create new ssh server
 | |
|         run: |
 | |
|           docker run -d \
 | |
|           --name=openssh-server \
 | |
|           --hostname=openssh-server \
 | |
|           -p 2222:2222 \
 | |
|           -e PUBLIC_KEY="${{ env.PUBLIC_KEY }}" \
 | |
|           -e SUDO_ACCESS=false \
 | |
|           -e PASSWORD_ACCESS=true  \
 | |
|           -e USER_PASSWORD=password  \
 | |
|           -e USER_NAME=linuxserver.io \
 | |
|           --restart unless-stopped \
 | |
|           lscr.io/linuxserver/openssh-server:latest
 | |
|           docker exec openssh-server sh -c "hostname -i" > ip.txt
 | |
|           echo "REMOTE_HOST<<EOF" >> $GITHUB_ENV
 | |
|           cat ip.txt >> $GITHUB_ENV
 | |
|           echo "EOF" >> $GITHUB_ENV
 | |
|           echo "======= container ip address ========="
 | |
|           cat ip.txt
 | |
|           echo "======================================"
 | |
|           sleep 2
 | |
| 
 | |
|       - name: ssh by private key
 | |
|         uses: appleboy/ssh-action@v1.0.3
 | |
|         with:
 | |
|           host: ${{ env.REMOTE_HOST }}
 | |
|           username: linuxserver.io
 | |
|           key: ${{ env.PRIVATE_KEY }}
 | |
|           port: 2222
 | |
|           script: whoami
 | |
| 
 | |
|       - name: wrong password but correct key
 | |
|         uses: appleboy/ssh-action@v1.0.3
 | |
|         with:
 | |
|           host: ${{ env.REMOTE_HOST }}
 | |
|           username: linuxserver.io
 | |
|           password: "abcdef"
 | |
|           key: ${{ env.PRIVATE_KEY }}
 | |
|           port: 2222
 | |
|           script: whoami
 | |
| 
 | |
|       - name: correct password but wrong key
 | |
|         uses: appleboy/ssh-action@v1.0.3
 | |
|         with:
 | |
|           host: ${{ env.REMOTE_HOST }}
 | |
|           username: linuxserver.io
 | |
|           password: password
 | |
|           key: password
 | |
|           port: 2222
 | |
|           script: whoami
 | |
| 
 | |
|       - name: stop script if command error
 | |
|         uses: appleboy/ssh-action@v1.0.3
 | |
|         continue-on-error: true
 | |
|         with:
 | |
|           host: ${{ env.REMOTE_HOST }}
 | |
|           username: linuxserver.io
 | |
|           password: password
 | |
|           key: password
 | |
|           port: 2222
 | |
|           script_stop: true
 | |
|           sync: true
 | |
|           debug: true
 | |
|           script: |
 | |
|             mkdir abc/def
 | |
|             ls -al
 |