@echo off
setlocal
:: Set server information and username
set SERVER=(ip_address)
set USER=(user)
:: Check if OpenSSH is installed
where ssh >nul 2>nul
if errorlevel 1 (
echo OpenSSH client is not installed. Please install OpenSSH client and ensure ssh command is in the system path.
exit /b
)
:: Generate SSH key pair if it does not exist
if not exist "%USERPROFILE%\.ssh\id_rsa" (
echo Generating new SSH key pair...
ssh-keygen -t rsa -b 4096 -C "%USER%@%SERVER%" -f "%USERPROFILE%\.ssh\id_rsa" -P ""
) else (
echo SSH key pair already exists, skipping generation.
)
:: Create .ssh directory on the remote server if it doesn't exist
echo Creating .ssh directory on the remote server if it doesn't exist...
ssh "%USER%@%SERVER%" mkdir -p .ssh
:: Set permissions for the .ssh directory on the remote server
echo Setting permissions for the .ssh directory on the remote server...
ssh "%USER%@%SERVER%" chmod 700 .ssh
:: Copy the public key to the Ubuntu server
echo Copying the public key to the Ubuntu server...
scp "%USERPROFILE%\.ssh\id_rsa.pub" "%USER%@%SERVER%:.ssh/authorized_keys"
:: Set permissions for the authorized_keys file on the remote server
echo Setting permissions for the authorized_keys file on the remote server...
ssh "%USER%@%SERVER%" chmod 600 .ssh/authorized_keys
echo Done! You should now be able to log in to the Ubuntu server without a password.
:: Pause the script, waiting for user input
pause
endlocal
Windows SSH远程免密登陆Linux服务器脚本
最新推荐文章于 2024-07-09 13:38:46 发布