diff --git a/.gitignore b/.gitignore
index 1605632abb48c1122adf22c5b76c55c773889a6d..14a9a04c592f34293d17e6fe225068fda7e0aaac 100644
--- a/.gitignore
+++ b/.gitignore
@@ -5,5 +5,6 @@
 CA*
 users/
 hosts/
-.server.pid
+sshd.pid
 known_hosts
+sshd_config
diff --git a/Makefile b/Makefile
index f9d4d6ad6a75a28939b86373966ce9a4c0c8ad10..747e38d95c91389b0608047ea7752cfb1f0d5187 100644
--- a/Makefile
+++ b/Makefile
@@ -1,16 +1,26 @@
 .PHONY: install clean test
 
+
+sshd_config:
+	@echo "ListenAddress 127.0.0.1:22222" > sshd_config
+	@echo "HostKey $$PWD/hosts/localhost" >> sshd_config
+	@echo "TrustedUserCAKeys $$PWD/CA.pub" >> sshd_config
+	@echo "HostCertificate $$PWD/hosts/localhost-cert.pub" >> sshd_config
+	@echo "PidFile sshd.pid" >> sshd_config
+	@echo "UsePrivilegeSeparation no" >> sshd_config
+
 install:
 	cp ssl-ca /usr/local/bin/ssh-ca
 	chmod 755 /usr/local/bin/ssh-ca
 
 clean:
-	rm -rf CA CA.pub users hosts known_hosts
+	rm -rf CA CA.pub users hosts known_hosts sshd.pid sshd_config
 
-test: clean
+test: clean sshd_config
 	./ssh-ca init
 	./ssh-ca newuser $$USER
 	./ssh-ca newhost localhost
 	echo "@cert-authority * $$(cat CA.pub)" > known_hosts
-	$$(which sshd) -dddf sshd_config
-	#ssh -F ssh_config test
+	$$(which sshd) -f sshd_config
+	test "$$(ssh -F ssh_config test whoami)" = "$$USER"
+	kill $$(cat sshd.pid)
diff --git a/sshd_config b/sshd_config
deleted file mode 100644
index b9d519837e9ddd41835722f66d994ba3b325a340..0000000000000000000000000000000000000000
--- a/sshd_config
+++ /dev/null
@@ -1,14 +0,0 @@
-ListenAddress 127.0.0.1:22222
-HostKey hosts/localhost
-TrustedUserCAKeys ssh_ca.pub
-HostCertificate hosts/localhost-cert.pub
-Banner "ssh-ca dummy test daemon"
-PasswordAuthentication no
-PermitRootLogin no
-PidFile .server.pid
-StrictModes no
-UsePrivilegeSeparation no
-UsePAM no
-RSAAuthentication yes
-PubkeyAuthentication yes
-Protocol 2