728x90

제 리눅스 환경과 원격 서버의 환경은 아래와 같습니다.

Ubuntu 20.04 LTS

 

만들고자 하는 계정과 배경은 이렇습니다.

  • @와 .이 들어간 이메일 형식의 사용자 계정을 추가하고 싶습니다.
  • 원격 Git Server가 존재하고 로컬에서 SSH로 Repository를 관리하고 싶습니다.

 

사용자 계정추가

먼저 linux에서 사용자 계정을 만드는 명령어는 adduser와 useradd가 있습니다.

여기서는 adduser로 설명을 하겠습니다.

 

$ sudo adduser <사용자id>
$ sudo adduser userId@admin.com

두 번째처럼 계정을 설정할 경우 오류 메시지를 내뿜으면서 계정이 생성되지 않습니다.

기본적으로 특수문자를 계정으로 설정할 수 없기 때문입니다.

하지만 무시하고 특수문자를 계정의 id에 추가하고 싶으면 --force -badname 옵션을 사용하세요.

$ sudo adduser userId@admin.com --force -badname

이후에 비밀번호를 설정하고 다른 내용을 채워주시면 사용자 계정이 생성됩니다.

 

SSH 설정

* SSH를 사용 가능한 상태를 전제로 합니다. ex) openssh 설치*

 

ssh 설정은 서버와 로컬에서 각각 해주실 것이 있습니다.

우선 로컬에서 ssh 공개키를 생성해야 합니다.

기본적으로는 ~/.shh 경로에 키가 존재합니다.

$ cd ~/.ssh 
$ ls
authorized_keys2  id_dsa       known_hosts
config            id_dsa.pub

.ssh 디렉토리로 이동해 ls 명령어로 id_dsa.pub이 있는지 확인합니다.

id_dsa.pub가 공개키고 id_dsa는 개인키입니다.

만약 공개키가 없다면 ssh-keygen 명령어로 생성해주세요.

$ ssh-keygen

그러면 키를 저장하고 싶은 디렉토리를 입력하고 암호를 두 번 입력하면 생성할 수 있습니다.

이때 암호를 비워두면 키를 사용할 때 암호를 묻지 않습니다.

암호를 생성하면 암호는 아래처럼 생겼습니다.

$ cat ~/.ssh/id_rsa.pub
ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAklOUpkDHrfHY17SbrmTIpNLTGK9Tjom/BWDSU
GPl+nafzlHDTYW7hdI4yZ5ew18JH4JW9jbhUFrviQzM7xlELEVf4h9lFX5QVkbPppSwg0cda3
Pbv7kOdJ/MTyBlWXFCR+HAo3FXRitBqxiX1nKhXpHAZsMciLq8V6RjsNAQwdsdMFvSlVK/7XA
t3FaoJoAsncM1Q9x5+3V0Ww68/eIFmb1zuUFljQJKprrX88XypNDvjYNby6vw/Pb0rwert/En
mZ+AW4OZPnTPI89ZPmVMLuayrD2cE86Z/il8b+gw3r3+1nKatmIkjn2so1d01QraTlMqVSsbx
NrRFi9wrf+M7Q== schacon@mylaptop.local

그럼 이제 이 파일을 옮기거나 내용을 복사해 서버에 만들어둔 계정의 .ssh/authorized_keys에 등록하면 됩니다.

 

서버에서는 제일 먼저 생성했던 계정으로 사용자 변경해줍니다.

$ su userId@admin.com
$ cd ~
$ mkdir .ssh && chmod 700 .ssh
$ touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys

사용자 계정을 userId@admin.com로 지었으니 su 명령어를 사용해 사용자를 변경해주고

홈 디렉토리로 이동 후 .ssh 디렉토리 생성, 권한 변경.

authorized_keys 파일 생성, 권한 변경을 해줍니다.

 

이후 authorized_keys 파일에 위에 로컬에서 생성한 공개키를 추가해주시면 됩니다.

파일로 가져오셨다면 cat, 복사해오셨다면 echo를 사용해주세요. 

사실 다른 방법도 될 수 있는데 전 echo를 사용했습니다.

$ echo "공개키"  >> ~/.ssh/authorized_keys

다음부터는 생성한 계정을 통해 접속하시면 됩니다.

 

#ex)
$ ssh userId@admin.com@192.168.xxx.xxx:9999

저는 Repository를 관리한다고 했으니 서버에 생성한 계정 소유자 권한을

서버에 접속은 못하고 push, pull만 가능하게 하려면 git-shell를 사용해보세요.

 

참조

Git server 설정하기

 

Git - 서버 설정하기

ssh-copy-id 명령을 사용하면 여기에서 설명하는 SSH 공개키를 복사하고 설치하는 내용을 자동화 한 도구이다.

git-scm.com

새 사용자 계정추가 aws linux

728x90

'OS' 카테고리의 다른 글

Linux Shell 명령어 - scp, cp, cat, su, chmod  (0) 2022.11.21

+ Recent posts