환경 변수 변경
환경 변수를 변경한다.
1.
명령 히스토리에 명령 실행 시간 정보를 출력할 수 있게 한다.
2.
명령 프롬프트를 내 스타일로 바꾼다.
.bash_profile에 다음 두 줄 추가
HISTTIMEFORMAT="%d/%m/%y %T "
PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h \[\e[31;1m\]\w > \[\e[0m\]"
Shell
복사
/root/.bash_profile도 수정해둔다.
HISTTIMEFORMAT="%d/%m/%y %T "
PS1="\[\e[36;1m\]\u@\[\e[32;1m\]\h \[\e[31;1m\]\w # \[\e[0m\]"
Shell
복사
sudoers.d에 NOPASSWD 설정
/etc/sudoers.d 디렉터리 아래에 내 아이디를 파일 이름으로 하여 다음 내용 추가
echo "$USER ALL=NOPASSWD: ALL" | sudo tee /etc/sudoers.d/$USER
Shell
복사
환경변수 $USER를 이용해 suders.d에 NOPASSWORD: ALL 옵션 지정
운영 환경에서 이런 설정은 굉장히 위험하다. 개인용 WSL 환경이니까 쓰는 것이다.
/ect/wsl.conf 옵션 변경
wsl.conf에 필요한 옵션을 지정한다.
[boot]
systemd=true
[automount]
enabled=true
options=metadata,uid=1000,gid=1000,umask=0077
[network]
generateResolvConf=true
generateHosts=true
hostname=rocky
Shell
복사
필요한 패키지 설치
sudo dnf install -y bash-completion bind-utils \
epel-release \
iproute \
java-11-openjdk-devel \
procps-ng \
socat \
wget which &&
sudo dnf install -y htop neofetch neovim &&
sudo dnf group install -y "Development Tools"
Shell
복사
앨리어스 구성
~/.bashrc.d 디렉터리를 만들고 다음과 같은 파일들을 만들어 넣어둔다.
mkdir ${HOME}/.bashrc.d && \
echo "alias edge='/mnt/c/Program\ Files\ \(x86\)/Microsoft/Edge/Application/msedge.exe'" > ${HOME}/.bashrc.d/edge && \
echo -e "alias ll='ls -ahl'\nalias ls='ls --color=auto'" > ${HOME}/.bashrc.d/ls && \
echo "alias subl='/mnt/c/Program\ Files/Sublime\ Text/subl.exe'" > ${HOME}/.bashrc.d/subl
echo -e "alias vi='nvim'\nexport EDITOR=\"vi\"" > ${HOME}/.bashrc.d/vi
. ${HOME}/.bashrc
Bash
복사
subl은 Sublime Text를 사용하기 위해서, edge는 Microsoft Edge 웹 브라우저를 이용하기 위한 것이다. Rockylinux 9의.bashrc 파일에 다음과 같은 코드가 있어 .bashrc.d 디렉터리에 있는 스크립트를 읽어 들여 실행하게끔 되어 있다.
# User specific aliases and functions
if [ -d ~/.bashrc.d ]; then
for rc in ~/.bashrc.d/*; do
if [ -f "$rc" ]; then
. "$rc"
fi
done
fi
unset rc
Bash
복사
Windows에 설치된 1Password 연결하기
사전 조건
1.
Windows에서 npiprelay.exe를 실행 가능한 위치(예: C:\Windows)에 복사해둔다.
2.
1Password 설정에 다음과 같이 SSH 에이전트 사용이 체크되어 있어야 한다.
3.
~/.ssh에 사용할 SSH 공개키만 놔둔다. 비밀키는 1Password에서 관리하므로 갖고 있을 필요가 없다.
4.
~/.ssh/config 파일은 다음과 같이 구성되어 있어야 한다.
Host *
IdentitiesOnly yes
Host github.com
HostName github.com
IdentityFile ~/.ssh/is_rsa.pub # 이 부분이 중요하다. 보다시피 비밀키가 아니라 "공개키"를 지정해준다.
IdentitiesOnly yes
PreferredAuthentications publickey
User git
Bash
복사
5.
(이유는 모르겠지만) 2022.10.31. 기준으로 Windows 11에 기본 탑재된 OpenSSH로는 1Password와 연동해 사용할 수 없다. Debian WSL에서는 가능한데 Rocky Linux에서는 안 된다… 관리자 권한으로 파워셸을 열고 OpenSSH를 최신 버전으로 업그레이드해서 이 문제를 우회한다.
# Download upstream bins
$url = 'https://github.com/PowerShell/Win32-OpenSSH/releases/latest/'
$request = [System.Net.WebRequest]::Create($url)
$request.AllowAutoRedirect=$false
$response=$request.GetResponse()
$source = $([String]$response.GetResponseHeader("Location")).Replace('tag','download') + '/OpenSSH-Win64.zip'
(New-Object System.Net.WebClient).DownloadFile($source, 'OpenSSH-Win64.zip')
# Overwrite windows installed bins
$openSshBins = (Get-ChildItem 'C:\WINDOWS\System32\OpenSSH\').Name
Expand-Archive -Path .\OpenSSH-Win64.zip -DestinationPath .
takeown.exe /a /r /f C:\Windows\System32\OpenSSH\
icacls.exe 'C:\Windows\System32\OpenSSH' /grant 'BUILTIN\Administrators:(OI)(CI)F'
icacls.exe 'C:\Windows\System32\OpenSSH' /grant 'BUILTIN\Administrators:F' /t
Stop-Service ssh-agent
$openSshBins | %{ Copy-Item -Path .\OpenSSH-Win64\$_ -Destination C:\Windows\System32\OpenSSH\ }
Start-Service ssh-agent
PowerShell
복사
설정
WSL로 설치한 Rocky Linux에서 ${HOME}/.bash_profile에 다음 행을 추가하고 . ${HOME}/.bash_profile을 실행한다.
export SSH_AUTH_SOCK=$HOME/.ssh/agent.sock
(
set -eu
piperelay=(setsid socat "UNIX-LISTEN:$SSH_AUTH_SOCK,fork" "EXEC:npiperelay.exe -ei -s //./pipe/openssh-ssh-agent,nofor
k")
if ! pgrep "-f" "socat.*$SSH_AUTH_SOCK" >/dev/null; then
rm -f "$SSH_AUTH_SOCK"
("${piperelay[@]}" &) >/dev/null
fi
)
Bash
복사