Last active
April 9, 2019 04:58
-
-
Save terwer/be3d04402d8639c2510eb12f0b4b86ed to your computer and use it in GitHub Desktop.
Ubuntu setup env for ssh in WSL
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
set -e | |
SSHD_LISTEN_ADDRESS=127.0.0.1 | |
SSHD_PORT=2222 | |
SSHD_FILE=/etc/ssh/sshd_config | |
SUDOERS_FILE=/etc/sudoers | |
# 0. update package lists | |
sudo apt-get update | |
# 0.1. reinstall sshd (workaround for initial version of WSL) | |
sudo apt remove -y --purge openssh-server | |
sudo apt install -y openssh-server | |
# 0.2. install basic dependencies | |
sudo apt install -y cmake gcc clang gdb valgrind build-essential | |
# 1.1. configure sshd | |
sudo cp $SSHD_FILE ${SSHD_FILE}.`date '+%Y-%m-%d_%H-%M-%S'`.back | |
sudo sed -i '/^ListenAddress/ d' $SSHD_FILE | |
sudo sed -i '/^Port/ d' $SSHD_FILE | |
sudo sed -i '/^UsePrivilegeSeparation/ d' $SSHD_FILE | |
sudo sed -i '/^PasswordAuthentication/ d' $SSHD_FILE | |
echo "# configured by CLion" | sudo tee -a $SSHD_FILE | |
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}" | sudo tee -a $SSHD_FILE | |
echo "Port ${SSHD_PORT}" | sudo tee -a $SSHD_FILE | |
echo "UsePrivilegeSeparation no" | sudo tee -a $SSHD_FILE | |
echo "PasswordAuthentication yes" | sudo tee -a $SSHD_FILE | |
# 1.2. apply new settings | |
sudo service ssh --full-restart | |
# 2. autostart: run sshd | |
sed -i '/^sudo service ssh --full-restart/ d' ~/.bashrc | |
echo "%sudo ALL=(ALL) NOPASSWD: /usr/sbin/service ssh --full-restart" | sudo tee -a $SUDOERS_FILE | |
cat << 'EOF' >> ~/.bashrc | |
sshd_status=$(service ssh status) | |
if [[ $sshd_status = *"is not running"* ]]; then | |
sudo service ssh --full-restart | |
fi | |
EOF | |
# summary: SSHD config info | |
echo | |
echo "SSH server parameters ($SSHD_FILE):" | |
echo "ListenAddress ${SSHD_LISTEN_ADDRESS}" | |
echo "Port ${SSHD_PORT}" | |
echo "UsePrivilegeSeparation no" | |
echo "PasswordAuthentication yes" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment